항해 99클럽 코테

99클럽 코테 스터디 29일차 TIL

metamong-data 2024. 11. 28. 09:38
728x90
반응형

오늘의 학습 키워드

정렬

문제

79를 영어로 읽되 숫자 단위로 하나씩 읽는다면 "seven nine"이 된다. 80은 마찬가지로 "eight zero"라고 읽는다. 79는 80보다 작지만, 영어로 숫자 하나씩 읽는다면 "eight zero"가 "seven nine"보다 사전순으로 먼저 온다.

문제는 정수 M, N(1 ≤ M ≤ N ≤ 99)이 주어지면 M 이상 N 이하의 정수를 숫자 하나씩 읽었을 때를 기준으로 사전순으로 정렬하여 출력하는 것이다.

입력

첫째 줄에 M과 N이 주어진다.

출력

M 이상 N 이하의 정수를 문제 조건에 맞게 정렬하여 한 줄에 10개씩 출력한다.

예제 입력 1

8 28

예제 출력 1

8 9 18 15 14 19 11 17 16 13
12 10 28 25 24 21 27 26 23 22
20

풀이 과정

  1. 숫자를 문자로 변환하여 리스트에 저장한다.
  2. 리스트를 정렬하고 10개씩 나누어서 출력한다.

제출 코드 (python)

m, n = map(int, input().split())

dict = {'1':'one', '2':'two', '3':'three', '4':'four', '5':'five', '6':'six',
        '7':'seven', '8':'eight', '9':'nine', '0':'zero'}

l = []

for i in range(m, n+1):
    a = ' '.join([dict[j] for j in str(i)])
    l.append([i, a])

l.sort(key=lambda x:x[1])

for i in range(len(l)):
    if i%10 == 0 and i!= 0:
        print()
    print(l[i][0], end=' ')

오늘의 회고

728x90