[알고리즘문제풀기] 문자열 섞기

silver's avatar
Apr 15, 2025
[알고리즘문제풀기] 문자열 섞기

문제

내가 작성한 정답

String

class Solution { public String solution(String str1, String str2) { String answer = ""; for(int i=0;i<str1.length(); i++){ answer += str1.charAt(i); answer += str2.charAt(i); } return answer; } }

StringBuilder, StringBuffer

class Solution { public String solution(String str1, String str2) { StringBuilder answer = new StringBuilder(); // StringBuffer answer = new StringBuffer(); for(int i=0;i<str1.length(); i++){ answer.append(str1.charAt(i)); answer.append(str2.charAt(i)); } return answer.toString(); } }

StringBuilder, StringBuffer - String[], char[]

class Solution { public String solution(String str1, String str2) { StringBuilder answer = new StringBuilder(); // StringBuffer answer = new StringBuffer(); String[] str11 = str1.split(""); String[] str22 = str2.split(""); // char[] str11 = str1.toCharArray(); // char[] str22 = str2.toCharArray(); for(int i=0;i<str1.length(); i++){ answer.append(str11[i]); answer.append(str22[i]); } return answer.toString(); } }

Stream

import java.util.stream.IntStream; class Solution { public String solution(String str1, String str2) { return IntStream.range(0,str2.length()) .mapToObj(i-> String.valueOf(str1.charAt(i))+String.valueOf(str2.charAt(i))) // .reduce("",String::concat); // .reduce("",(a,b)->a+b); .collect(Collectors.joining()); } } // reduce - 스트림의 요소를 결합하여 단일 결과값을 생성 // reduce(초기값, 스트림 누적 함수)
 

다른 사람들의 정답

StringBuilder에서 append 연속으로 사용가능하다!

class Solution { public String solution(String str1, String str2) { char[] chars1 = str1.toCharArray(); char[] chars2 = str2.toCharArray(); StringBuilder sb = new StringBuilder(); for (int i=0; i<chars1.length; i++) { sb.append(chars1[i]).append(chars2[i]); } return sb.toString(); } }

charAt으로 연속으로 더하기

class Solution { public String solution(String str1, String str2) { String answer = ""; for(int i=0; i<str1.length(); i++) { answer += "" + str1.charAt(i) + str2.charAt(i); } return answer; } }
💡
char 타입은 내부적으로 정수형으로 표현되기 때문에 문자열 연결 시 + 연산자를 사용할 때 char 타입 변수들이 먼저 계산된다면 숫자 계산으로 처리될 수 있다.
→ 빈 문자열 ""을 먼저 더하여 char 타입 값들을 문자열로 변환
→ String.valueOf() 메서드 사용
→ StringBuilder로 추가
Share article

silver