주니어 기초 코딩공부/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