[알고리즘문제풀기] 글자 이어 붙여 문자열 만들기

silver's avatar
Mar 16, 2025
[알고리즘문제풀기] 글자 이어 붙여 문자열 만들기

문제

내가 작성한 정답

String

class Solution { public String solution(String my_string, int[] index_list) { String answer = ""; for(int i= 0; i<index_list.length;i++){ answer += my_string.substring(index_list[i],index_list[i]+1); } return answer; } }

StringBuilder

class Solution { public String solution(String my_string, int[] index_list) { StringBuilder answer = new StringBuilder(); for(int i= 0; i<index_list.length;i++){ answer.append(my_string.substring(index_list[i], index_list[i] + 1)); } return answer.toString(); } }

StreamAPI

import java.util.stream.*; class Solution { public String solution(String my_string, int[] index_list) { return IntStream.range(0,index_list.length) .mapToObj(i->my_string.substring(index_list[i],index_list[i]+1)) .collect(Collectors.joining()); } } import java.util.stream.Collectors; import java.util.Arrays; class Solution { public String solution(String my_string, int[] index_list) { return Arrays.stream(index_list) .mapToObj(i->my_string.substring(i,i+1)) .collect(Collectors.joining()); } }

다른 사람들의 정답

charAt

class Solution { public String solution(String my_string, int[] index_list) { StringBuilder sb = new StringBuilder(); for(int i : index_list){ sb.append(my_string.charAt(i)); } return sb.toString(); } }

StreamAPI

import java.util.*; import java.util.stream.Collectors; class Solution { public String solution(String myString, int[] indexList) { return Arrays.stream(indexList) .mapToObj(operand -> String.valueOf(myString.charAt(operand))) .collect(Collectors.joining()); } }
my_string.charAt(i)는 char 타입의 값을 반환한다. char는 기본 데이터 타입이라 Stream의 요소로 사용하기 위해서는 객체로 변환해야 한다.
→ String.valueOf(char) 메서드를 사용하여 char를 String으로 변환해야 한다.
 
💡

char[]를 이어붙여서 String으로 변환하기

  1. StringBuilder
    1. StringBuilder sb = new StringBuilder(); char[] chars = {'H', 'e', 'l', 'l', 'o'}; for (char c : chars) { sb.append(c); } String result = sb.toString(); // "Hello"
  1. String.concat() : String의 concat() 메서드를 사용하여 char를 String으로 변환한 후 이어붙이기
    1. String result = ""; char[] chars = {'H', 'e', 'l', 'l', 'o'}; for (char c : chars) { result = result.concat(String.valueOf(c)); }
  1. String.join() : char 배열을 String으로 변환한다
    1. char[] chars = {'H', 'e', 'l', 'l', 'o'}; String result = String.join("", new String(chars));
  1. Stream - new String(char[])
    1. char[] chars = {'H', 'e', 'l', 'l', 'o'}; String result = new String(chars); // result는 "Hello"
 
Share article

silver