본문 바로가기
코딩테스트/프로그래머스 입문

[코딩테스트 Lv.0] 외계행성의 나이

by 블루데이제이 2024. 1. 8.
728x90
반응형

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

 

입출력 예 설명

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

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

입출력 예 #3
age가 100이므로 "baa"를 return합니다.

 


내 풀이

[Java]

class Solution {
    public String solution(int age) {
        String answer = "";
        StringBuilder sb = new StringBuilder();
        
        while(age > 0){
            char c = (char) ('a' + (age % 10));
            sb.insert(0, c);
            
            age /= 10;
        }
        
        answer = sb.toString();
        
        return answer;
    }
}

 

[C]

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>

char* solution(int age) {
    // return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요.
    char* answer = (char*)malloc(1000);
    char c[5];
    
    sprintf(c, "%d", age);
    
    int i = 0;
    while(c[i] != '\0'){                     
        answer[i] = 'a' + c[i] - '0';
        i++;        
    }
    answer[i] = '\0';
    
    return answer;
}

 

[Python]

def solution(age):
    answer = ""
    
    for i in str(age):    
        c = ord('a') + int(i)
        answer += chr(c)
    
    return answer

 


https://school.programmers.co.kr/learn/courses/30/lessons/120834

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 


이 번 문제는 아스키(ASCII) 코드를 이해하는 것입니다.
기본적으로 외울 아스키 코드는

코드  문자
48     0
65     A
97     a
0       NULL
728x90
반응형