🤖Algorithm

[프로그래머스] 수박수박수박수박수박수? Java

Jaeyoung Kim 2022. 7. 19. 12:41
728x90

수박수박수박수박수박수?


문제설명

길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요.

예를들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다.


제한사항

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

입출력 예

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

기본코드

class Solution {
    public String solution(int n) {
        String answer = "";
        return answer;
    }
}

문제풀이

그간 알고리즘 풀이를 하면서 프로그래밍적 사고가 어느정도 세팅이 된건지 문제를 보고

몇 자 코드를 적으니 기능하기 시작하였다.

그렇게 어려운 문제는 아니었다.

 

빈 문자열 answer을 설정해두고,

마찬가지로 빈 숫자열 count를 설정해둔다.

주어진 문자열의 길이 n만큼 도는 for문을 만들고, 그 안에서 0을 포함한 짝수 번째 자리의 문자에는 "박"가,

홀수 번째 자리의 문자는 "수"가 들어가도록하여 문제 풀이를 완료하였다.

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

 

문제 풀이를 완료한 후 다른 사람들의 코드를 보고 내 코드를 보니 무언가 이상하였다.

왜 굳이 count란 빈 숫자열을 만들어서 진행하였나?

int i가 이미 그 역할을 해내고 있는데..

그래서 그 부분을 수정하고, 더불어 삼항연산자로 다시 풀이하여 최종 답안을 제출하였다.

 

삼항연산자를 쓰는 과정에서 또 다시 다소 버벅거리고 관련 자료를 참고하였다.

계속해서 if문을 쓸 일이 있으면 삼항연산자로도 작성해보며 반복 숙달이다🔥


Solution.java

class Solution {
    public String solution(int n) {
        String answer = "";

        for(int i = 0; i < n; i++){
            answer += (i % 2 == 0)? "수" : "박";
        }
        return answer;
    }
}

 

728x90