문제
내가 작성한 정답
class Solution {
public String solution(int age) {
String answer = "";
String age1 = String.valueOf(age);
for(char a : age1.toCharArray()){
switch (a) {
case '0': answer+='a'; break;
case '1': answer+='b'; break;
case '2': answer+='c'; break;
case '3': answer+='d'; break;
case '4': answer+='e'; break;
case '5': answer+='f'; break;
case '6': answer+='g'; break;
case '7': answer+='h'; break;
case '8': answer+='i'; break;
case '9': answer+='j'; break;
}
}
return answer;
}
}
다른 사람들의 정답
class Solution {
public String solution(int age) {
StringBuilder sb = new StringBuilder();
while(age > 0) {
// age % 10으로 일의 자리수를 가져와서
// (int)'a' : a의 아스키코드 값을 가져와 더해 -> 0이 a니까 1이면 a+1인 b ...
// sb의 첫번째 자리에 넣는다.
sb.insert(0, (char) ((age % 10) + (int)'a'));
// 그 다음 십의 자리수를 구하기 위해 10으로 나눈다.-> 100의 자리수나 그 이상 있을 경우 반복
age /= 10;
}
return sb.toString();
}
}
import java.util.stream.Collectors;
class Solution {
public String solution(int age) {
return String.valueOf(age).chars() //IntStream
//각 숫자에 대해 문자 변환을 수행
// 0 - 아스키코드'48'
// a - 아스키코드'97' 두 개의 차 : 49
.mapToObj(operand -> String.valueOf((char) (49 + operand)))
.collect(Collectors.joining());
}
}
Share article