코딩테스트/프로그래머스 입문
[ 코딩테스트 입문 ] LV0 외계행성의 나이
Adose
2025. 6. 15. 01:01
📚 문제 설명
여행을 하던 머쓱이는 엔진 고장으로 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 행성은 알파벳 소문자만 사용합니다.
💻 구현 코드
//정답 코드 1
public String solution(int age) {
String [] ageData = new String[26];
//알파벳
for(int i=0 ; i<26;i++){
ageData[i] = String.valueOf((char)('a'+i));
}
String tAge = String.valueOf(age);
StringBuilder result = new StringBuilder();
for(char c : tAge.toCharArray()){
int num = c-'0';
result.append(ageData[num]);
}
return result.toString();
}
//정답 코드 2
public String solutio2(int age) {
String sAge = String.valueOf(age);
//String sAge = Integer.toString(age);
char [] ageList = new char[26];
for(int i=0;i<26;i++){
ageList[i] = (char)('a'+i);
}
StringBuilder result = new StringBuilder();
for(int i=0;i<sAge.length();i++){
int num = sAge.charAt(i)-'0';
result.append(String.valueOf(ageList[num]));
}
return result.toString();
}
//정답 코드 3
public String solution3(int age) {
String sAge = Integer.toString(age);
StringBuilder result = new StringBuilder();
for(int i=0;i<sAge.length();i++){
//char data = (char) ((sAge.charAt(i) -'0')+97);
//char data =(char)(sAge.charAt(i) +49);
char data = (char)('a'+(sAge.charAt(i) -'0'));
result.append(data);
}
return result.toString();
}
📌 구현코드 해설
- 첫번째 코드, 두번째 코드
첫번째 코드, 두번째 코드는 알파벳을 배열로 저장한 후, 입력으로 들어온 int를 String 으로 변환한 후 값을 하나하나 비교해주었다.
또한 -'0'을 사용하여 숫자로 변환해주었다.
- 세번째 코드
첫번째, 두번째 코드에서 사용했던 방식 처럼 알파벳을 넣어주는게 아닌, -'0'을 통하여 숫자로 변환 한후 'a'에 더해주어서 해당 숫자에 해당하는 알파벳을 return할 수 있게 했다.
🍏 회고 / 새롭게 알게 된 점
- '0'을 활용하면 문자형 숫자(예: '3')를 정수형 숫자(예: 3)로 쉽게 변환할 수 있다는 사실을 알게 되었다.
예: '3' - '0' → 3 - 'a'를 더하면 숫자를 알파벳 문자로 변환할 수 있다는 것도 새롭게 배웠다.
예: 0 + 'a' → 'a', 1 + 'a' → 'b' - int ↔ String, 그리고 String → char[] 또는 int[]로 변환하는 방법도 익혔다.
- String.valueOf(int) 또는 Integer.toString(int) → int → String
- Integer.valueOf(String) → String → int
- toCharArray() → String → char 배열