문제 설명
우주여행을 하던 머쓱이는 엔진 고장으로 PROGRAMMERS-962 행성에 불시착하게 됐습니다. 입국심사에서 나이를 말해야 하는데, PROGRAMMERS-962 행성에서는 나이를 알파벳으로 말하고 있습니다. a는 0, b는 1, c는 2, ..., j는 9입니다. 예를 들어 23살은 cd, 51살은 fb로 표현합니다. 나이 age가 매개변수로 주어질 때 PROGRAMMER-962식 나이를 return하도록 solution 함수를 완성해주세요.
제한사항
- age는 자연수입니다.
- age ≤ 1,000
- PROGRAMMERS-962 행성은 알파벳 소문자만 사용합니다.
입출력 예
age | result |
23 | "cd" |
51 | "fb" |
100 | "baa" |
입출력 예 #1 : age가 23이므로 "cd"를 return합니다.
입출력 예 #2 : age가 51이므로 "fb"를 return합니다.
입출력 예 #3 : age가 100이므로 "baa"를 return합니다.
나의 풀이
class Solution {
public String solution(int age) {
StringBuilder answer = new StringBuilder();
String[] alpha = {"a","b","c","d","e","f","g","h","i","j"};
//String[] alpha = new String[]{"a","b","c","d","e","f","g","h","i","j"};
while(age>0){
answer.insert(0, alpha[age % 10]);
age /= 10;
}
return answer.toString();
}
}
다른 풀이1
class Solution {
public String solution(int age) {
StringBuilder answer = new StringBuilder();
while(age != 0){
answer.append((char)(age % 10 + 'a'));
age /= 10;
}
return answer.reverse().toString();
}
}
다른 풀이2
class Solution {
public String solution(int age) {
String answer = "";
String age962 = String.valueOf(age);
for(int i=0;i<age962.length();i++){
answer += (char)(age962.charAt(i)+49);
}
return answer;
}
}
다른 풀이3
import java.util.stream.Collectors;
class Solution {
public String solution(int age) {
return String.valueOf(age).chars().mapToObj(operand -> String.valueOf((char) (49 + operand))).collect(Collectors.joining());
}
}
'👨💻 Coding Test' 카테고리의 다른 글
[Programmers/Java/Lv.0] 34.순서쌍의 개수 (0) | 2024.10.04 |
---|---|
[Programmers/Java/Lv.0] 33.진료순서 정하기 (0) | 2024.10.02 |
[Programmers/Java/Lv.1] 1.폰켓몬 (2) | 2024.09.28 |
[Programmers/Java/Lv.0] 31.배열 자르기 (0) | 2024.09.27 |
[Programmers/Java/Lv.0] 30.짝수의 합 (0) | 2024.09.27 |