본문 바로가기

알고리즘, 자료구조

[프로그래머스 | 코딩 기초 트레이닝 Lv.0 | JAVA] 문자 리스트를 문자열로 변환하기

출처 - 프로그래머스

1. 문제목적

해당 문제는  join(), slice()메서드를 이해할 수 있습니다.

다른 방법으로 자바의 StringBuilder메서드에 대해 이해할 수 있습니다.

2. 필요개념

  • slice(): 어떤 배열의 begin부터end까지(end미포함)에 대한 얕은 복사본을 새로운 배열 객체로 반환합니다.
  • join(): 배열의 모든 요소를 연결해 하나의 문자열로 만들어줍니다.

3. 코드작성

function solution(arr) {
   return arr.slice().join('')
}

4. 문제풀이

  1. arr.slice()를 사용하여 주어진 배열의 복사본을 생성합니다. slice() 메서드는 배열의 일부분을 추출한 새로운 배열을 반환합니다. 여기서는 배열 전체를 복사하기 위해 매개변수를 제공하지 않았습니다.
  2. arr.slice().join('')는 배열의 모든 요소를 문자열로 결합합니다. join('') 메서드는 배열의 각 요소를 지정된 구분자 없이 연결하여 하나의 문자열로 만듭니다. 여기서는 빈 문자열('')을 구분자로 사용하여 각 요소를 이어붙입니다.
  3. 최종적으로, 배열의 모든 요소가 하나의 문자열로 결합된 결과가 반환됩니다.

5. 다른방법 

import java.util.*;

class Solution {
    public String solution(String[] arr) {
        
        StringBuilder sb = new StringBuilder();

        for(int i = 0; i<arr.length; i++) {
            sb.append(arr[i]);
        }
        
        return sb.toString();
    }
}
  1. StringBuilder 클래스를 사용하여 문자열을 효율적으로 처리합니다. StringBuilder는 가변적인 문자열을 생성할 수 있는 클래스로, 문자열 연산 시에 새로운 객체를 생성하지 않고 기존의 객체를 수정하여 성능을 향상시킵니다.
  2. StringBuilder sb = new StringBuilder();에서 StringBuilder 객체를 생성합니다.
  3. for 루프를 사용하여 배열의 각 요소를 StringBuilder에 추가합니다. sb.append(arr[i]);는 StringBuilder에 현재 배열 요소를 추가합니다.
  4. 최종적으로, sb.toString()을 호출하여 StringBuilder 객체를 문자열로 변환하고 반환합니다.

6. 마무리

join() 메서드를 이해할 수 있었습니다. String.join() 메서드는 첫 번째 인자로 구분자를 지정하고, 두 번째 인자로 문자열 리스트를 받아 하나의 문자열로 합칩니다. 첫 번째 인자로 빈 문자열("")을 지정하면 구분자를 사용하지 않고 연결하면 구분자를 사용하지 않고 연결합니다.

7. 문제링크

코딩테스트 연습 > 코딩기초트레이닝 > 자바 > 문자 리스트를 문자열로 변환하기

https://school.programmers.co.kr/learn/courses/30/lessons/181941