반응형
백준 1755번: 숫자놀이. Python 파이썬 답안, 백준 코딩테스트 파이썬 풀이
문제
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개씩 출력한다.
답안
def number_to_words(num):
num_to_word = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"]
return " ".join(num_to_word[int(digit)] for digit in str(num))
def main():
import sys
input = sys.stdin.read
M, N = map(int, input().strip().split())
# 숫자를 영어로 변환하고 (숫자, 변환 문자열) 쌍을 리스트에 저장
numbers = [(i, number_to_words(i)) for i in range(M, N + 1)]
# 영어로 변환한 문자열을 기준으로 정렬
numbers.sort(key=lambda x: x[1])
# 정렬된 숫자만 추출하여 출력
sorted_numbers = [num[0] for num in numbers]
# 한 줄에 10개씩 출력
for i in range(0, len(sorted_numbers), 10):
print(" ".join(map(str, sorted_numbers[i:i + 10])))
if __name__ == "__main__":
main()
반응형
'공부 > 코딩테스트' 카테고리의 다른 글
백준 1302번: 베스트셀러. Python 파이썬 답안, 백준 코딩테스트 파이썬 풀이 (0) | 2024.06.23 |
---|---|
백준 6954번 Card Game. Python 파이썬 답안, 백준 코딩테스트 파이썬 풀이 (0) | 2024.06.23 |
백준 4988번: Numeral System. Python 파이썬 답안, 백준 코딩테스트 파이썬 풀이 (0) | 2024.06.23 |
백준 1822번: 차집합. Python 파이썬 답안, 백준 코딩테스트 파이썬 풀이 (0) | 2024.06.23 |
백준 1269번: 대칭 차집합. Python 파이썬 답안, 백준 코딩테스트 파이썬 풀이 (0) | 2024.06.22 |
댓글