외계행성의 나이

반즈·2023년 12월 13일

프로그래머스 입문

목록 보기
40/51

문제 풀이

우주여행을 하던 머쓱이는 엔진 고장으로 PROGRAMMERS-962 행성에 불시착하게 됐습니다. 입국심사에서 나이를 말해야 하는데, PROGRAMMERS-962 행성에서는 나이를 알파벳으로 말하고 있습니다. a는 0, b는 1, c는 2, ..., j는 9입니다. 예를 들어 23살은 cd, 51살은 fb로 표현합니다. 나이 age가 매개변수로 주어질 때 PROGRAMMER-962식 나이를 return하도록 solution 함수를 완성해주세요.

입출력 예


자바

나의 풀이

class Solution {
    public String solution(int age) {
        String answer = "";
        String str = String.valueOf(age);
        for(int i = 0; i < str.length(); i++){
            for(int j = 0; j <= 9; j++){
                if(Character.getNumericValue(str.charAt(i)) == j){
                    switch(j){
                        case 0 : answer += 'a';
                                 break;
                        case 1 : answer += 'b';
                                 break;
                        case 2 : answer += 'c';
                                 break;
                        case 3 : answer += 'd';
                                 break;
                        case 4 : answer += 'e';
                                 break;
                        case 5 : answer += 'f';
                                 break;
                        case 6 : answer += 'g';
                                 break;
                        case 7 : answer += 'h';
                                 break;
                        case 8 : answer += 'i';
                                 break;
                        case 9 : answer += 'j';
                                 break;
                    }
                }
            }
        }
        return answer;
    }
}

참고 풀이 (while, arr // answer를 뒤에 더하는게 중요)

class Solution {
    public String solution(int age) {
        String answer = "";
        String[] alpha = new String[]{"a","b","c","d","e","f","g","h","i","j"};

        while(age>0){
            answer = alpha[age % 10] + answer;
            age /= 10;
        }

        return answer;
    }
}

자바스크립트

나의 풀이 (배열에 담기)

function solution(age) {
    var alphabet = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j"];
    var answer = "";
    age = age.toString();

    for(let i=0; i<age.length; i++){
        answer += alphabet[age[i]];
    }
    return answer;
}

참고 풀이 1 (.map() // 문자열도 인덱스[] 접근 가능)

function solution(age) {
  return age
    .toString()
    .split("")
    .map((v) => "abcdefghij"[v])
    .join("");
}
profile
나를 채우다

0개의 댓글