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

Digeut·2023년 2월 24일
0

프로그래머스

목록 보기
5/164

❔문제설명

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

🤔아이디어

int age를 String으로 바꾼 다음, 배열로 변환해서
문자열의 길이동안 숫자를 영소문자로 바꾸는 코드?

❌틀린 코드

class Solution {
    public String solution(int age) {
        String answer = "";
        String strAge = String.valueOf(age);
        String[] ageArr = strAge.split("");
        
        for(int i = 0 ; i < ageArr.length ; i++){
           answer += ((char)Integer.parseInt(ageArr[i] + 97/*아스키코드*/));
        }
        return answer;
    }
}

🙄오류

????아스키 코드97은 영소문자 a부터 시작인걸로 아는데 이건 무슨 문자야???????

💡코드 풀이

class Solution {
    public String solution(int age) {
        String answer = "";
        //String strAge = String.valueOf(age);
        String strAge = "abcdefghij";
        String[] ageArr = String.valueOf(age).split("");
        
        for(int i = 0 ; i < ageArr.length ; i++){
            //answer += ((char)Integer.parseInt(ageArr[i] + 97));
            answer += strAge.charAt(Integer.valueOf(ageArr[i]));
        }
        return answer;
    }
}

아스키 코드 이해는 포기하고...
그냥 영소문자를 포함하는 String을 만들어줬다.
String으로 저장된 문자열 중에서 char타입으로 변환해주는 charAt 이용해서
나온 ageArr[i]값을 문자로 바꾼뒤 변환했다.

profile
개발자가 될 거야!

0개의 댓글