TODAY TIL
안녕하세요! 😊 오늘은 숫자를 영어로 읽어서 사전순으로 정렬하는 재미있는 문제를 함께 풀어보겠습니다. 이 문제는 파이썬으로 간단하게 구현할 수 있으니, 따라오세요!
문제 설명 📖
- 숫자를 숫자 단위로 영어로 읽는다.
- 예: 79 → seven nine, 80 → eight zero
- 영어로 읽은 숫자를 기준으로 사전순 정렬한다.
- 예: 80 (eight zero) → 79 (seven nine)
- 정렬한 숫자를 한 줄에 10개씩 출력한다.
입출력 예시 📝
입력
79 80
출력
80 79
또 다른 예시
입력
8 15
출력
8 11 12 13 15 14 10 9
문제 풀이 과정 💡
1단계: 숫자를 영어로 변환하기
숫자를 하나씩 쪼개서 영어로 읽어야 해요.
예를 들어:
- 79 → seven nine
- 80 → eight zero
이를 위해 각 자리 숫자를 영어로 변환하는 함수를 만듭니다.
2단계: 정렬 기준 만들기
숫자를 영어로 변환한 후, 영어 문자열 기준으로 정렬합니다.
3단계: 한 줄에 10개씩 출력하기
정렬된 숫자들을 10개씩 묶어서 출력하면 됩니다.
파이썬 코드 🐍
def number_to_words(num):
# 숫자를 영어로 변환하는 함수
digits = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"]
return " ".join(digits[int(digit)] for digit in str(num))
def solve_number_problem(M, N):
# M부터 N까지 숫자를 영어로 변환하여 정렬
numbers = list(range(M, N + 1))
sorted_numbers = sorted(numbers, key=number_to_words)
# 결과를 한 줄에 10개씩 출력
for i in range(0, len(sorted_numbers), 10):
print(" ".join(map(str, sorted_numbers[i:i + 10])))
# 입력 받기
M, N = map(int, input().split())
solve_number_problem(M, N)
코드 설명 🛠️
함수 number_to_words
- 숫자 하나를 받아서 숫자 단위로 영어 문자열로 변환합니다.
- 예: 79 → seven nine, 80 → eight zero
digits = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"]
return " ".join(digits[int(digit)] for digit in str(num))
함수 solve_number_problem
- M부터 N까지 숫자를 리스트로 생성합니다.
- 예: M=79, N=80 → [79, 80]
- 숫자를 number_to_words 기준으로 정렬합니다.
- 예: 79 → seven nine, 80 → eight zero
- 정렬 결과: [80, 79]
- 한 줄에 10개씩 출력합니다.
- 예: print(" ".join(...))
예제 실행 결과 🎯
입력
8 15
출력
8 11 12 13 15 14 10 9
문제를 해결하면서 배운 점 📚
- 숫자를 영어로 변환하기 위해 문자열 처리를 배웠어요.
- sorted 함수로 정렬 기준을 자유롭게 설정하는 방법을 익혔어요.
- 한 줄에 10개씩 출력하는 반복문 작성법도 알게 되었어요.
마무리 ✍️
이번 문제는 숫자를 영어로 읽는 독특한 방법과 정렬 기준 설정이 핵심이었습니다. 여러분도 파이썬으로 재미있게 구현해보세요! 😊
'python' 카테고리의 다른 글
99클럽 코테 스터디_4기 32일차 TIL (1) | 2024.11.30 |
---|---|
99클럽 코테 스터디_4기 31일차 TIL (1) | 2024.11.28 |
99클럽 코테 스터디_4기 29일차 TIL (1) | 2024.11.26 |
99클럽 코테 스터디_4기 28일차 TIL (0) | 2024.11.25 |
99클럽 코테 스터디_4기 27일차 TIL (0) | 2024.11.25 |