앞으로 매일 꾸준히 코딩테스트를 진행하면서 단계를 높여가보자.
우주여행을 하던 머쓱이는 엔진 고장으로 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 행성은 알파벳 소문자만 사용합니다.
class Solution {
public String solution(int age) {
String answer = "";
String age962 = "abcdefghij";
String[] ageArr = String.valueOf(age).split("");
for(int i = 0; i < ageArr.length; i++) {
answer += age962.charAt(Integer.valueOf(ageArr[i]));
}
return answer;
}
}
1) 결과를 저장할 변수 answer를 초기화해준다.
2) 각 나이에 해당하는 알파벳을 담은 문자열 age962를 선언한다.
3) 문자열 각 자릿수를 split를 이용하여 분리하고 배열 ageArr에 저장한다.
4) 반복문으로 각 자릿수에 해당하는 알파벳을 answer에 추가한다.
class Solution {
public String solution(int age) {
String answer = "";
char[] alphabets = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'};
String ageStr = String.valueOf(age);
for(int i = 0; i < ageStr.length(); i++) {
int digit = Character.getNumericValue(ageStr.charAt(i));
answer += alphabets[digit];
}
return answer;
}
}
배열 인덱스 활용한 방법
1) 결과를 저장한 변수 answer를 초기화한다.
2) 나이에 해당하는 알파벳 문자 배열 alphabets를 선언한다.
3) 나이를 문자열 ageStr로 변환한다.
4) 반복문으로 각 자릿수 digit을 가져와 answer에 추가한다.
- ageStr.charAt(i) : 문자열 ageStr에서 인덱스 i에 해당하는 문자를 가져온다.
- Character.getNumericValue() : 주어진 문자에 대응하는 숫자 값을 반환한다.
- getNumericValue() 메서드는 주어진 문자에 해당하는 숫자 값을 반환한다.
java.lang.Character.getNumericValue(char)
숫자 형태의 char형을 int형으로 변환
예를 들어, '0' 문자에 대응하는 숫자는 0