본문 바로가기
CodingTest/Programmers

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

by yoondoo 2022. 11. 28.
728x90
class Solution {
    public String solution(int age) {
        
        StringBuilder sb = new StringBuilder();
        // 'a' -> 97
        
        while(age>0){
            sb.append((char)(97 + age % 10));
            age/=10;
        }
        
        return String.valueOf(sb.reverse());
    }
}

소문자 'a'의 정수 아스키코드가 97인 것을 이용해서 문제를 풀었다.

 

age의 뒤에서부터 %10해서 나온 나머지 만큼 97에 더해주면 더해준 만큼의 알파벳이 나온다.

ex) 97 + 3 = 'c'

 

그 다음 age를 age/10으로 나눈 몫으로 값을 초기화 하고 위의 방법으로 age가 0이 될 때까지 반복한다.

 

뒤에서부터 문자를 붙였기 때문에 마지막에 reverse()메서드를 이용해서 뒤집어준 후 문자열로 변환하고 반환해준다.

반응형

댓글