alorithm/programmers

[JAVA/프로그래머스] Lv1. 수박수박수박수박수박수?

Hannana. 2023. 4. 27. 01:07
728x90
반응형
[문제]
길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다.

<제한 조건>
n은 길이 10,000이하인 자연수입니다.


<입출력 예>

n return
3  "수박수"
4  "수박수박"

 


 

[풀이]

import java.util.*;
class Solution {
    public String solution(int n) {
        String[] arr = new String[n];
        for(int i=0;i<arr.length;i++){
            if((i+1)%2==1){
                arr[i] = "수";
            }else if((i+1)%2==0){
                arr[i] = "박";
            }
        }
        String answer= String.join("", arr);
        return answer;
    }
}

 

내가 푼 방식은 입력된 값 n 크기의 빈 배열을 만들어서

for문을 돌려 해당 배열에 차곡차곡 인덱스 별로 값을 선별하여 집어넣는 형태이다.

 

 

[다른 사람의 풀이]

public class WaterMelon {
    public String watermelon(int n){

        return new String(new char [n/2+1]).replace("\0", "수박").substring(0,n);
    }

    // 실행을 위한 테스트코드입니다.
    public static void  main(String[] args){
        WaterMelon wm = new WaterMelon();
        System.out.println("n이 3인 경우: " + wm.watermelon(3));
        System.out.println("n이 4인 경우: " + wm.watermelon(4));
    }
}

참고로 substring 은 0번째 문자열부터 n번째 전까지 자르는 함수이다.

어차피 반복되는 건 '수박'이니 문자열을 대체한다는 발상이 좋은 것 같다.

 

 

 

 

 

반응형