코딩테스트/프로그래머스

[프로그래머스] Lv.0 수 조작하기2(Java)

선SEON 2023. 11. 8. 11:50

1. 문제

 

2. 제출 답안

public String solution(int[] numLog) {
    String answer = "";
    int currentNum = numLog[0];

    for (int i = 1; i < numLog.length; i++) {
        int diff = numLog[i] - numLog[i - 1];

        if (diff == 1) {
            answer += "w";  // 수에 1을 더한 경우
        } else if (diff == -1) {
            answer += "s";  // 수에 1을 뺀 경우
        } else if (diff == 10) {
            answer += "d";  // 수에 10을 더한 경우
        } else if (diff == -10) {
            answer += "a";  // 수에 10을 뺀 경우
        }
    }

    return answer;
}

 

문자열을 자주 수정하는 경우에는 StringBuilder를 사용하는 게 더 효율적일 듯 하다.

 

3. 다른 풀이

class Solution {
    public String solution(int[] numLog) {
        String answer = "";
        for(int i = 1; i < numLog.length; i++){
            int j = numLog[i-1] - numLog[i];
            switch(j){
                case -1 : answer+='w'; break;
                case 1 : answer+='s'; break;
                case -10 : answer+='d'; break;
                case 10 : answer+='a'; break;
            }
        }
        return answer;
    }
}

 

switch 문을 사용한 차이가 있다.