Posis

[프로그래머스] 외계행성의 나이 본문

알고리즘/프로그래머스

[프로그래머스] 외계행성의 나이

CooNiHong 2022. 12. 5. 17:42

문제 링크

https://school.programmers.co.kr/learn/courses/30/lessons/120834

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제 설명

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

제한사항

  • age는 자연수입니다.
  • age ≤ 1,000
  • PROGRAMMERS-962 행성은 알파벳 소문자만 사용합니다.

입출력 예

age result
23 "cd"
51 "fb"
100 "baa"

입출력 예 설명

입출력 예 #1

  • age가 23이므로 "cd"를 return합니다.

입출력 예 #2

  • age가 51이므로 "fb"를 return합니다.

입출력 예 #3

  • age가 100이므로 "baa"를 return합니다.

나의 풀이

Java

class Solution {
    public String solution(int age) {
        String[] strArr = ("" + age).split("");
        String answer = "";
        for(int i = 0; i < strArr.length; i++) {
            switch(strArr[i]) {
                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;
    }
}

JavaScript

function solution(age) {
    let answer = '';
    const ageObject = {
        '0': 'a',
        '1': 'b',
        '2': 'c',
        '3': 'd',
        '4': 'e',
        '5': 'f',
        '6': 'g',
        '7': 'h',
        '8': 'i',
        '9': 'j',
    };
    let ageArr = (age + '').split('');
    answer = ageArr.map((value) => ageObject[value]).join("");
    return answer;
}

// 방법2
function solution(age) {
    return age.toString().split('').map((v) => 'abcdefghij'[v]).join('');
}

JavaScript는 문자열에도 index가 존재하므로 2번째와 같은 방법으로도 해결할 수 있습니다.

728x90