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()메서드를 이용해서 뒤집어준 후 문자열로 변환하고 반환해준다.
반응형
'CodingTest > Programmers' 카테고리의 다른 글
| [프로그래머스] Lv.0 최댓값 만들기 (2) (0) | 2022.11.29 |
|---|---|
| [프로그래머스] Lv.0 피자 나눠 먹기 (2) (0) | 2022.11.29 |
| [프로그래머스] Lv.0 인덱스 바꾸기 (0) | 2022.11.28 |
| [프로그래머스] Lv.0 배열 회전시키기 (0) | 2022.11.28 |
| [프로그래머스] Lv.0 암호 해독 (0) | 2022.11.28 |
댓글