CodingTest/Baekjoon

[baekjoon] 백준 1755번(파이썬): 숫자놀이

JunJangE 2022. 1. 8. 01:37

문제

 

1755번: 숫자놀이

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

www.acmicpc.net

알고리즘

- 반복문을 통해 m부터 n까지 수를 영어 단어로 바꾼다.

- 바꾼 영어 단어는 사전 순으로 정렬하기 위해 오름차순으로 정렬한다.

- 반복문을 통해 영어 단어의 수를 출력한다.

- 영어 단어의 수는 한 줄의 10개씩 출력한다.

코드

import sys


word = { "0" : "zero", "1" : "oen" , "2" : "two" , "3" : "three" , "4" : "four" , "5" : "five",  "6" : "six", "7" : "seven" , "8" : "eight" , "9" : "nine" }
m, n = map(int, sys.stdin.readline().split())
nums = []

# 반복문을 통해 m부터 n까지 수를 영어 단어로 바꾼다.
for i in range(m, n + 1):
    temp = []
    for j in str(i):
        temp.append([word[j], j])
    nums.append(temp)

# 바꾼 영어 단어를 사전순으로 정렬하기 위해 오름차순으로 정렬
nums.sort()

# 반복문을 통해 영어 단어의 수를 출력
for k in range(len(nums)):
    res = ""

    # 한 줄의 10개씩 출력
    if k % 10 == 0 and k != 0:
        print()

    for a, b in nums[k]:
        res += b
    print(res, end=" ")

github

 

GitHub - junjange/CodingTest: 내가 푼 코딩 테스트 문제와 해결법

내가 푼 코딩 테스트 문제와 해결법. Contribute to junjange/CodingTest development by creating an account on GitHub.

github.com