❓문제설명
우주여행을 하던 머쓱이는 엔진 고장으로 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 행성은 알파벳 소문자만 사용합니다.
▼입출력의 예
age | result |
23 | "cd" |
51 | "fb" |
100 | "baa" |
✏️ 직접 구현한 코드
class Solution {
public String solution(int age) {
String answer = "";
String temp = Integer.toString(age); //age를 String 타입으로 변환
int arr[] = new int [temp.length()]; //temp의 길이만큼의 배열 생성
for(int i=0; i<arr.length; i++){
arr[i] = temp.charAt(i) - '0'; //arr[i]방에 temp의 i인덱스 값을 int 타입으로 변환하여 값을 넣어줌
answer += (char) (arr[i]+97); //arr[i]에 + 97을 더한 다음 아스키코드를 이용하여 answer에 추가
}
return answer;
}
}
▲ 코드 설명은 주석 참고
⭐ 정리하고 갈 내용
정수에서 각 자리 숫자가 무엇인지 구하는 방법
<나눗셈을 이용해서 구하는 방법>
int num = 12345;
int temp;
while(num > 0) {
temp = temp % 10; //temp에 일의자리 숫자부터 차례대로 저장됨
System.out.print(temp);
num /= 10;
}
//출력값 : 54321
<문자열로 변환해서 구하는 방법>
int num = 12345;
String strNum = Integer.toString(num);
int[] arrNum = new int[strNum.length()];
for (int i = 0; i < strNum.length(); i++) {
arrNum[i] = strNum.charAt(i) - '0';
}
for(int i=0; i < strNum.length(); i++){
System.out.print(i);
}
//출력값 : 12345
'CodingTest' 카테고리의 다른 글
프로그래머스 - 피자 나눠 먹기 (3) (0) | 2023.03.30 |
---|---|
프로그래머스 - 숨어있는 숫자의 덧셈 (1) (JAVA) (0) | 2023.03.29 |
프로그래머스 - 369게임 (JAVA) (0) | 2023.03.23 |
프로그래머스 - 모음 제거 (JAVA) (0) | 2023.03.23 |
프로그래머스 - 중복된 문자 제거 (0) | 2023.03.21 |