주니어 기초 코딩공부/JAVA_programmers_코딩테스트
외계행성의 나이_programmers_lev00
jju_developer
2022. 12. 7. 03:19
728x90
<코딩 테스트>
우주여행을 하던 머쓱이는 엔진 고장으로 PROGRAMMERS-962 행성에 불시착하게 됐습니다. 입국심사에서 나이를 말해야 하는데, PROGRAMMERS-962 행성에서는 나이를 알파벳으로 말하고 있습니다. a는 0, b는 1, c는 2, ..., j는 9입니다. 예를 들어 23살은 cd, 51살은 fb로 표현합니다. 나이 age가 매개변수로 주어질 때 PROGRAMMER-962식 나이를 return하도록 solution 함수를 완성해주세요.
<나의 풀이 과정>
1. a의 아스키코드를 변수에 저장.
2. 받는 age를 split연산자를 사용하여 배열에 하나 하나 저장.
3. 배열은 String이고 a 는 int형이기 때문에 두개를 더할때에는 Integer.parseInt를 사용.
4. 그 값을 외계행성의 나이로 표현해야 하기 때문에 Char 형태로 형변환.
이번 풀이를 통해서 각각 연산할때 형변환 해야하는 부분을 잘 배우게 되었습니다.
<나의 풀이 코드>
class Solution {
public String solution(int age) {
String answer = "";
int a = 97;
char ch =0;
String str = String.valueOf(age);
String[] strArr = str.split("");
for (int i = 0; i < strArr.length; i++) {
answer += (char)(Integer.parseInt(strArr[i]) + a);
}
return answer;
}
}
<다른사람 풀이 1>
class Solution {
public String solution(int age) {
StringBuilder sb = new StringBuilder();
while(age > 0) {
sb.insert(0, (char) ((age % 10) + (int)'a'));
age /= 10;
}
return sb.toString();
}
}
<다른사람 풀이 2>
class Solution {
public String solution(int age) {
String ta = String.valueOf(age);
int diff = (int)Math.abs('a'-'0');
String answer = "";
for(int i=0; i<ta.length(); i++){
answer += (char)(ta.charAt(i)+diff);
}
return answer;
}
}
728x90