컴퓨터/프로그래머스

[Java] 프로그래머스 코딩테스트 연습 / 문자열 섞기

peridott 2026. 1. 20. 11:13

문제


정답

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

개념설명

1. 클래스 선언

class Solution {

✔️ 의미

  • Solution이라는 클래스 정의

 

2. 메서드 선언

public String solution(String str1, String str2) {

✔️ 의미

  • 두 문자열을 받아서 새 문자열을 만들어 반환하는 메서드
요소 의미
public 외부 접근 가능
String 반환 타입
solution 메서드 이름
String str1 첫 번째 문자열
String str2 두 번째 문자열

✔️ 전제 조건

  • str1과 str2는 길이가 같다고 가정(문제 조건에서 보통 보장됨)

 

3. 결과 문자열 변수 선언

String answer = "";

✔️ 의미

  • 최종 결과를 담을 문자열 변수
  • 빈 문자열로 초기화

 

4. for문 시작 (문자 하나씩 반복)

for(int i = 0; i < str1.length(); i++) {

✔️ 의미

  • 문자열 str1의 길이만큼 반복
  • 같은 인덱스로 str2도 함께 접근

✔️ for문 구성 요소 분석

for(초기식; 조건식; 증감식)
부분 의미
int i = 0 인덱스 시작
i < str1.length() 문자열 길이 미만
i++ 1씩 증가

✔️ 왜 str1.length()만 쓰는가?

  • 두 문자열 길이가 같기 때문

 

5.  charAt(i)로 문자 추출

str1.charAt(i)
str2.charAt(i)

✔️ 의미

  • 각 문자열의 i번째 문자 하나씩 가져옴
  • 반환타입 : char

 

6. 문자열 + 문자 연결

answer = answer + str1.charAt(i) + str2.charAt(i);

✔️ 실행순서

  • 이 줄은 왼쪽부터 순서대로 계산된다.
1. answer + str1.charAt(i)
2. (결과 문자열) + str2.charAt(i)
  • 문자열이 하나라도 있으면
  • +는 문자열 연결 연산자로 동작

 

7. 반복 종료

}
  • 모든 인덱스를 순회하면 for문 종료

 

8. 결과 반환

return answer;

✔️ 의미

  • 완성된 문자열을 반환

 

9. 클래스 종료

}

🔚 전체 실행 흐름 요약

  1. 문자열 두 개 입력
  2. 인덱스 0부터 끝까지 반복
  3. 같은 위치의 문자 두 개를 순서대로 붙임
  4. 최종 문자열 반환

💡 핵심 포인트 정리

문법 의미
charAt(i) i번째 문자
length() 문자열 길이
+ 문자열 연결
for 반복