본문 바로가기
algorithm

[프로그래머스]외계행성의 나이 - java, python

by skysline 2023. 3. 9.
반응형

`외계행성의 나이 `

문제 설명

우주여행을 하던 머쓱이는 엔진 고장으로 PROGRAMMERS-962 행성에 불시착하게 됐습니다.

입국심사에서 나이를 말해야 하는데,

PROGRAMMERS-962 행성에서는 나이를 알파벳으로 말하고 있습니다.

a는 0, b는 1, c는 2,..., j는 9입니다.

예를 들어 23살은 cd, 51살은 fb로 표현합니다.

나이 age가 매개변수로 주어질 때 PROGRAMMER-962식 나이를 return 하도록 solution 함수를 완성해 주세요.

입출력 예

입출력 예 #1

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

입출력 예 #2

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

입출력 예 #3

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

java code

import java.util.stream.Stream;
class Solution {
    public String solution(int age) {
        String answer = "";
        char[] alpa = {'a','b','c','d','e','f','g','h','i','j'};
        String ages = Integer.toString(age);
        int[] digits = Stream.of(ages.split("")).mapToInt(Integer :: parseInt).toArray();
        for (int i = 0; i < digits.length; i++) {
            answer += alpa[digits[i]];
        }
        return answer;
    }
}

먼저, char[] alpa 배열에 알파벳을 저장합니다. 그리고 입력된 나이를 Integer.toString(age) 메소드를 사용하여 문자열로 변환한 후, Stream.of(ages.split("")) 코드를 사용하여 문자열을 한 자리씩 나눈 후, mapToInt(Integer::parseInt) 코드를 사용하여 각 자리의 문자를 정수로 변환하여 digits 배열에 저장합니다.

그런 다음 for 루프를 사용하여 digits 배열을 순회하면서 각 자리수에 해당하는 알파벳을 answer 문자열에 추가합니다. 이 때, alpa[digits[i]]를 사용하여 digits 배열의 i번째 자리의 값에 해당하는 알파벳을 찾아 추가합니다.

예를 들어, solution(25)를 호출하면, digits 배열은 [2, 5]가 되며, for 루프에서 alpa[digits[i]]를 사용하여 b와 f 문자를 answer 문자열에 추가하여 "bf"를 반환합니다.

 python code

def solution(age):
    alpa = ['a','b','c','d','e','f','g','h','i','j']
    answer = ""
    for i in str(age):
        answer += alpa[int(i)]
    return answer

결과

반응형

댓글