본문으로 바로가기

📘문제 설명

길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다.

https://school.programmers.co.kr/learn/courses/30/lessons/12922?language=java

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

 


📌 제한조건

  • n은 길이 10,000이하인 자연수입니다.

💡 개념 설명

  1. 반복문: n번 반복하는 루프를 만듭니다.
  2. 홀수/짝수 판별: 루프 내에서 현재 인덱스(또는 횟수)가 홀수인지 짝수인지 판별합니다.
    • 홀수 번째(i가 0, 2, 4...)일 때는 "수"를 결과 문자열에 추가합니다.
    • 짝수 번째(i가 1, 3, 5...)일 때는 "박"을 결과 문자열에 추가합니다.
  3. 문자열 조합: StringBuilder를 사용하여 문자열을 효율적으로 조합합니다. 문자열을 더할 때마다 새로운 객체를 생성하는 String보다 StringBuilder가 성능 면에서 유리합니다.
  4. 반환: 최종적으로 만들어진 문자열을 반환합니다.

📎 입출력 예시


📎 코드

public class Solution {
    public String solution(int n) {
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < n; i++) {
            if (i % 2 == 0) {
                sb.append("수");
            } else {
                sb.append("박");
            }
        }
        return sb.toString();
    }

    public static void main(String[] args) {
        Solution sol = new Solution();

        // 테스트 케이스
        int n1 = 3;
        int n2 = 4;
        int n3 = 7;

        System.out.println("n = " + n1 + ", return \"" + sol.solution(n1) + "\""); // 예상 출력: 수박수
        System.out.println("n = " + n2 + ", return \"" + sol.solution(n2) + "\""); // 예상 출력: 수박수박
        System.out.println("n = " + n3 + ", return \"" + sol.solution(n3) + "\""); // 예상 출력: 수박수박수박수
    }
}

 


📎 결과