[Programmers] 수박수박수박수박수박수? (Java)

zerokick·2023년 4월 9일
0

Coding Test

목록 보기
38/120
post-thumbnail

수박수박수박수박수박수? (Java)


문제 설명

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

제한 조건

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

입출력 예

nreturn
3"수박수"
4"수박수박"

Solution

1

class Solution {
    public String solution(int n) {
        String answer = "";
        
        int evenCnt = 0;
        int oddCnt = 0;
        
        if(n%2 == 0) {
            evenCnt = n/2;
        } else {
            evenCnt = n/2;
            oddCnt = 1;
        }
        
        for(int i = 0; i < evenCnt; i++) {
            answer += "수박";
        }
        
        if(oddCnt == 1) answer += "수";
        
        return answer;
    }
}

2

class Solution {
    public String solution(int n) {
        String answer = "";
        
        answer = new String(new char[(n/2)+1]).replace("\0", "수박").substring(0, n);
        
        return answer;
    }
}

Feedback

char 배열을 String 생성자 내에 선언하면 String 객체로 반환한다.
char 형 배열의 사이즈만 지정하는 경우 null 문자를 나타내는 "\n"으로 초기화된다.
배열의 사이즈르 (n/2)+1 로 지정한 이유는 n이 1인경우 배열의 길이가 0이 되기 때문이다.
사실 배열의 사이즈를 n으로 두어도 substring으로 자르기 때문에 상관은 없지만, 최소한의 배열을 만들기 위해서 2로 나누고 각 "\n"을 "수박"으로 replace 하는 것.

profile
Opportunities are never lost. The other fellow takes those you miss.

0개의 댓글