[프로그래머스] Lv.0 외계행성의 나이.java

김엄지·2024년 4월 22일

알고리즘

목록 보기
52/90

🐤 목표

앞으로 매일 꾸준히 코딩테스트를 진행하면서 단계를 높여가보자.

문제 설명

우주여행을 하던 머쓱이는 엔진 고장으로 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


참고한 코드
https://velog.io/@osy8814/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4JAVA%EC%99%B8%EA%B3%84%ED%96%89%EC%84%B1%EC%9D%98-%EB%82%98%EC%9D%B4

profile
나만의 무언가를 가진 프로그래머가 되자

0개의 댓글