외계행성의 나이 Lv. 0

박영준·2023년 4월 23일
0

코딩테스트

목록 보기
61/300

문제 설명

우주여행을 하던 머쓱이는 엔진 고장으로 PROGRAMMERS-962 행성에 불시착하게 됐습니다. 입국심사에서 나이를 말해야 하는데, PROGRAMMERS-962 행성에서는 나이를 알파벳으로 말하고 있습니다. a는 0, b는 1, c는 2, ..., j는 9입니다. 예를 들어 23살은 cd, 51살은 fb로 표현합니다. 나이 age가 매개변수로 주어질 때 PROGRAMMER-962식 나이를 return하도록 solution 함수를 완성해주세요.

class Solution {
    public String solution(int age) {
        String answer = "";
        return answer;
    }
}

제한 사항

  • age는 자연수입니다.
  • age ≤ 1,000
  • PROGRAMMERS-962 행성은 알파벳 소문자만 사용합니다.

입출력 예

입출력 예 설명

  • 입출력 예 #1

    • age가 23이므로 "cd"를 return합니다.
  • 입출력 예 #2

    • age가 51이므로 "fb"를 return합니다.
  • 입출력 예 #3

    • age가 100이므로 "baa"를 return합니다.

해결법

방법 1

class Solution {
	public String solution(int age) {
    	String answer = "";
        String age962 = "abcdefghij";		// a ~ j 까지 String 선언
        String[] ageArr = String.valueOf(age).split("");
        
        for (int i = 0; i < ageArr.length; i++) {
        	answer += age962.charAt(Integer.valueOf(ageArr[i]));
		}
        return answer;
    }
}
  • String.valueOf() : int형이든 double형이든 boolean형이든 String객체로 만든다.

    참고: Enum 클래스 (enumeration type, 열거체) - (2) valueOf() 메소드

  • String[] split(String regex) : 특정 문자를 기준으로 문자열을 나눈다.

    • split("") : 공백을 기준으로 나눈다.

    참고: String 클래스 - 2. 메소드

  • answer += age962.charAt(Integer.valueOf(ageArr[i]));

    1. Sring 타입의 ageArr[i] 을 Integer 타입으로 변환
    2. Integer 타입을 char 타입으로 변환
    3. char 타입 간에 더하기 (Integer 타입이였다면, 숫자간의 덧셈이 돼버리기 때문)

방법 2 ?

class Solution {
    public String solution(int age) {
        String answer = "";
        String temp = Integer.toString(age);
        
        for (int i = 0; i < temp.length(); i++) {
            answer += (char) (temp.charAt(i) + 49);
        }
        return answer;
    }
}
  1. Integer.toString() : int 타입을 string 타입으로 변환한다.
  2. temp.charAt(i) : string 타입을 char 타입으로 변환한다.

외계행성의 나이

profile
개발자로 거듭나기!

0개의 댓글