<aside>
💬 lv0, 문자열 처리, 숫자 변환
주어진 정수를 한글로 표현된 문자열로 변환하는 함수를 작성해주세요. 예를 들어, 123이 주어지면 "일백이십삼"을 반환해야 합니다. 이 문제에서는 1부터 9999까지의 정수만을 다룹니다.
| 입력 | 출력 |
|---|---|
| 123 | 일백이십삼 |
| 45 | 사십오 |
| 1001 | 일천일 |
| 2020 | 이천이십 |
| 100 | 일백 |
Note: 문제가 어렵게 출제되었다면 앞에 일을 생략하하는 문제가 출제되었을 것입니다.
</aside>
def solution(data):
units = ["", "십", "백", "천"]
nums = ["", "일", "이", "삼", "사", "오", "육", "칠", "팔", "구"] **#1 단위와 숫자**
result = ""
str_data = str(data)[::-1] **#2 데이터 역순**
for i, digit in enumerate(str_data): **#3 숫자 변환**
num = int(digit)
if num > 0: **#4 자릿수에 따른 한글표현**
result = nums[num] + units[i] + result
return result **#5 결과 반환**
단위와 숫자 리스트 선언
숫자 단위를 나타내는 untis와 숫자에 대응되는 한글표현을 나타내는 nums리스트를 만듭니다.
데이터 역순
주어진 데이터를 역순으로 정렬합니다.
숫자 변환
enumerate함수를 사용하여 i는 자릿수의 위치, digit은 해당 위치의 숫자를 나타내 줍니다.
자릿수에 따른 한글표현
nums[num]을 통해 현재 자릿수에 해당하는 한글 숫자를 가져오고 units[i]를 통해 자릿수에 해당하는 한글 단위를 가져옵니다.
결과 반환
한글 표현으로 변환된 결과값을 반환합니다.
enumerate
기본 형태: enumerate()
개념: 시퀀스(리스트, 튜플, 문자열 등)의 각 요소에 대해 인덱스와 값을 함께 반환하는 열거 객체를 생성합니다.
# enumerate 함수를 사용한 예제
fruits = ["apple", "banana", "cherry", "date"]
# enumerate 함수를 사용하여 인덱스와 값을 함께 출력
for index, fruit in enumerate(fruits):
print(index, fruit) # 출력: 0 apple 1 banana 2 cherry 3 date
def solution(data):
my_dict = {0: '', 1: '일', 2: '이', 3:'삼', 4:'사', 5:'오',
6:'육', 7:'칠', 8:'팔', 9:'구', 10:'십', 100:'백', 1000:'천'} **#1 한글표현**
result = '' **#2 결과값 초기화**
current_num = data
if current_num // 1000 != 0: **#3 단위값에 따른 조건문**
result += my_dict[data // 1000] + '천'
current_num = data % 1000
if current_num // 100 != 0:
result += my_dict[current_num // 100] + '백'
current_num = data % 100
if current_num // 10 != 0:
result += my_dict[current_num // 10] + '십'
current_num = data % 10
result += my_dict[current_num]
return result **#4 결과 반환**
한글 표현 생성
주어진 숫자에 대응하는 한글 표현을 담은 딕셔너리를 생성합니다.
결과값 초기화
결과를 저장할 변수를 초기화합니다.
단위값에 따른 조건문
주어진 값을 단위값으로 나누어 그에 맞는 단위를 표기해줍니다. 주어진 값을 나눈 후 나머지는 아래 조건문으로 이동하여 똑같은 작업을 반복합니다. 마지막 조건문을 거친다면 주어진 값은 10미만이 됩니다.