View

문제설명

우주여행을 하던 머쓱이는 엔진 고장으로 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 행성은 알파벳 소문자만 사용합니다.

입출력 예ageresult
23 "cd"
51 "fb"
100 "baa"

입출력 예 설명

입출력 예 #1

  • age가 23이므로 "cd"를 return합니다.

입출력 예 #2

  • age가 51이므로 "fb"를 return합니다.

입출력 예 #3

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

나의 풀이

def solution(age):
    ages = ['a','b','c','d','e','f','g','h','i','j']
    return ''.join(ages[int(i)] for i in str(age))


다른 풀이

def solution(age):
    return ''.join([chr(int(i)+97) for i in str(age)])
def solution(age):
    answer = ''
    char_num = {str(i): chr(ord('a') + i) for i in range(26)}
    return ''.join([char_num[x] for x in str(age)])

ord() : 한 문자의 아스키코드 값을 정수형으로 반환

print(ord('a'), ord('z')) #97, 122
print(ord('A'), ord('Z')) #65, 90

어쩔수 없다 외우자...! a 는 97 .. A 는 65 .. 알파벳 갯수는 25개.......

chr() : 인자로 받은 정수형을 아스키코드 값으로 받고 해당 코드의 문자를 반환

print(chr(97), chr(0x61)) #a a
print(chr(122),chr(0x7a)) #z z

 

Share Link
reply
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31