본문 바로가기
JAVA/Programmers

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

by tripleup 2023. 5. 29.
728x90
반응형

[프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 외계행성의 나이

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


해결 과정

 

이 문제는 먼저 StringBuilder를 이용하여 풀어보려 한다.

 

먼저 age 각 자리의 수를 해당 알파벳으로 변환하기 위하여

1의 자리수부터 가져오기로 한다. 

int k를 age를 10으로 나눈 나머지수로 선언 을 해준다

 

만약, 23의 경우 23%10 = 3이 된다

이 3을 char형으로 변환해 주어야 한다

 

만약 k가 0일 경우 -> k+'a' 는 그대로 a로 나타낼수 있다

k가 1일 경우 -> 1+'a'이므로 b로 나타낼 수 있다.

 

이렇게 char형으로 변환한 값을 StringBuilder sb에 insert해준다

여기서 주의할 점은 0번째 인덱스에 삽입하는 것을 반복함으로써 원래 숫자의 순서대로 나열될 수 있도록 한다

그리고 다시 반복하기 전 age/=10을통해 자릿수를 바꿔줘야 한다

 

마지막으로 sb.toString()을 통해 StringBuilder에 있는 내용을 문자열로 return 해주면 된다.

 

소스 코드

 

class Solution {
    public String solution(int age) {
        StringBuilder sb = new StringBuilder();
        
        while (age>0) {
            int k = age%10;
            char c = (char)(k+'a');
            sb.insert(0,c);
            
            age /= 10;
        }
        return sb.toString();
    }
}
728x90
반응형

댓글