https://www.acmicpc.net/problem/1755

간단한 문자열 변환 후 정렬 문제이다.
파이썬의 경우 딕셔너리로 1:"one" 처럼 해서 문자열로 변환한 후 sort 함수를 사용하면 끝나는 간단한 문제이다.
다만 이번에는 딕셔너리가 아니라 3.10 버전에 추가된 match - case 문을 사용해보았다.
match - case는 다른 언어의 switch-case 문이라고 생각하면 된다.
이 match 문을 통해 수를 문자열로 바꿔서 같이 저장해주고 문자열을 기준으로 정렬해준뒤
해당 문자열에 맞는 수를 다시 출력해주면 된다.
10개씩 끊어 출력하는 것의 경우
매 10번째 출력마다 줄바꿈을 해주면 된다.
매 10번째인지 확인하는 것은 % 연산을 통해 0이 나오면 10의 배수인 것이다.
코드보기
더보기
from sys import stdin
def get_string(num):
st = str(num)
out = [0] * len(st)
for i in range(len(st)):
match st[i]:
case '0':
out[i] = 'zero'
case '1':
out[i] = 'one'
case '2':
out[i] = 'two'
case '3':
out[i] = 'three'
case '4':
out[i] = 'four'
case '5':
out[i] = 'five'
case '6':
out[i] = 'six'
case '7':
out[i] = 'seven'
case '8':
out[i] = 'eight'
case '9':
out[i] = 'nine'
return ' '.join(out)
N, M = map(int, stdin.readline().split())
answer = [0] * (M-N+1)
for i in range(N, M+1):
answer[i-N] = (get_string(i), i)
answer.sort()
for i in range(len(answer)):
print(answer[i][1], end=' ')
if i % 10 == 9:
print()
'공부하기 > 문제 풀기' 카테고리의 다른 글
| [백준][Python] 1927번: 최소 힙 (최소 힙의 개념과 직접 구현하기) (1) | 2024.11.24 |
|---|---|
| [백준][Python] 2108번: 통계학 (0) | 2024.11.23 |
| [백준][Python] 2502번: 떡 먹는 호랑이 (0) | 2024.11.20 |
| [백준][Python] 2012번: 등수 매기기 (0) | 2024.11.18 |
| [백준][C] 2003번: 수들의 합 2 (0) | 2024.11.17 |