๐ ๋ฌธ์
https://www.acmicpc.net/problem/1755
๐ ํ์ด
1. ์ฒซ๋ฒ์งธ ์๋
์ผ๋จ ํ์ด๋ณธ ๋ฐฉ๋ฒ !
[์ ์ฒด ์ฝ๋]
'''์ต์ข
์ ์ถ ์ฝ๋'''
M , N = map(int, input().split())
num_list = [str(i) for i in range(M, N + 1)]
def convert_to_str(txt):
dictionary = {'0':'zero', '1':'one', '2':'two', '3':'three', '4':'four', '5':'five', '6':'six', '7':'seven', '8':'eight', '9':'nine'}
transTable = txt.maketrans(dictionary)
txt = txt.translate(transTable)
return txt
alphabet_list = []
for num in num_list:
if len(num) == 1:
alphabet_list.append((num, convert_to_str(num)))
else:
alphabet_list.append((num, convert_to_str(num[0]) + " " + convert_to_str(num[1])))
alphabet_list.sort(key = lambda x : (x[1]))
for i in range(len(alphabet_list)):
if i % 10 == 0 and i!=0:
print(sep = '\n')
print(alphabet_list[i][0], end=" ")
[ํด์ค]
'''์ฝ๋์ ํจ๊ป ํ์ด ์ค๋ช
'''
# input ๊ฐ ๋ฐ๊ณ , M๋ถํฐ N๊น์ง ์ซ์๋ฅผ string ๋ฐ์ดํฐ ํ์
์ผ๋ก ๋ฐ์ ๋ฆฌ์คํธ๋ฅผ ๋ง๋ค์ด์ค๋ค.
# ๐ฅ tip : range(start,stop)์์ stip-1๊น์ง์ ๋ฒ์๊น์ง๋ง ํด๋น๋๋ฏ๋ก N๊น์ง ํ๋ ค๋ฉด N+1์ผ๋ก ํด์ผ ํ๋ค
M , N = map(int, input().split())
num_list = [str(i) for i in range(M, N + 1)]
# ์ซ์๋ฅผ ์ํ๋ฒณ์ผ๋ก ๋ฐ๊ฟ์ฃผ๋ ํจ์ ๋ง๋ค์ด์ฃผ๊ธฐ - ์๋์์ ์์ธํ๊ฒ ๋ค๋ฃฐ ์์ !๐
def convert_to_str(txt):
dictionary = {'0':'zero', '1':'one', '2':'two', '3':'three', '4':'four', '5':'five', '6':'six', '7':'seven', '8':'eight', '9':'nine'}
transTable = txt.maketrans(dictionary)
txt = txt.translate(transTable)
return txt
'''์ซ์ -> ์ํ๋ฒณ์ผ๋ก ๋ฐ๊พธ๋๋ฐ
ํ์๋ฆฌ ์์ด๋ฉด ๋ฐ๋ก,
๋ ์๋ฆฌ ์์ด๋ฉด 'two', 'seven'์ 'two seven'์ฒ๋ผ ์คํ์ด์ค๋ฐ ํ๋๋ฅผ ๋๊ณ ๋ฃ์ด์ค๋ค
(input ๊ฐ์ ์ต๋๊ฐ์ด 99์ด๊ธฐ ๋๋ฌธ์ ํ์๋ฆฌ or ๋ ์๋ฆฌ์์ด๋ค)'''
alphabet_list = []
for num in num_list:
if len(num) == 1:
alphabet_list.append((num, convert_to_str(num)))
else:
alphabet_list.append((num, convert_to_str(num[0]) + " " + convert_to_str(num[1])))
# ์ ๋ ฌํ๊ธฐ - x[1]์ ๊ธฐ์ค์ผ๋ก ํ๋ค : ์ํ๋ฒณ์ ๊ธฐ์ค์ผ๋ก ํ๋ค๋ ๋ป
# ๋ฆฌ์คํธ ์์ ํํ๊ฐ ['1', 'one'] ์ด๋ฐ ์์ด๋ผ 1๋ฒ์งธ ์ธ๋ฑ์ค ๋ฒํธ๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํ๋ค๋ ๋ป!
# ๐์๋์ ์ฐธ๊ณ ๋งํฌ ํ์ธ!
alphabet_list.sort(key = lambda x : x[1])
# 10๊ฐ๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค๋ฐ๊ฟ('\n')์ ๋ฃ์ด์ค๋ค.
for i in range(len(alphabet_list)):
if i % 10 == 0 and i!=0:
print(sep = '\n')
print(alphabet_list[i][0], end=" ")
๐ ์ซ์๋ฅผ ์ํ๋ฒณ์ผ๋ก ๋ฐ๊ฟ์ฃผ๋ ํจ์ ์์๋ณด๊ธฐ : ์ฌ๋ฌ ๋ฌธ์๋ฅผ ๋์ฒดํ๋ ํจ์ maketrans( ) & translate( )
1. maketrans( ) ๋ฉ์๋๋ translate( ) ๋ฉ์๋์ ํจ๊ป ์ฌ์ฉํ์ฌ ์ง์ ๋ ๋ฌธ์๋ฅผ ๋ฐ๊ฟ ์ ์๋ ๋งคํ ํ ์ด๋ธ์ ๋ฐํํจ
2. string.maketrans( ) : ์๋ ๋ฌธ์์ด๊ณผ ๋์ฒด ๋ฌธ์์ด ๊ฐ์ ๋งคํ ํ ์ด๋ธ์ ๋ฐํํจ
3. string.translate( ) : ์ง์ ๋ ์ผ๋ถ ๋ฌธ์๊ฐ ์ฌ์ ์ด๋ ๋งคํ ํ ์ด๋ธ์ ์ค๋ช ๋ ๋ฌธ์๋ก ๋์ฒด๋๋ ๋ฌธ์์ด์ ๋ฐํํจ โก๏ธ ์ฌ๊ธฐ์๋ maketrans( )๊ฐ ๋ฐํํ ํ ์ด๋ธ์ ๋ฒ์ญํ๋ ์ญํ โจ
4. string.maketrans(x, y, z)์ ํ๋ผ๋ฏธํฐ ์์๋ณด๊ธฐ
Parameter | Description |
x | Required parameter(ํ์) - ๋งค๊ฐ๋ณ์๊ฐ ํ๋๋ง ์ง์ ๋ ๊ฒฝ์ฐ : ๊ต์ฒด๋ฅผ ์ํํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํ๋ dictionary์ฌ์ผ ํจ - ๋๊ฐ ์ด์ : ๋ฐ๊ฟ ๋ฌธ์์ด |
y | optional parameter - x๋ฅผ ๋์ฒดํ๋ ๋ฌธ์์ด(x์ ๋ฌธ์์ด ๊ธธ์ด๊ฐ ๊ฐ์์ผ ํจ) |
z | optional parameter - ์๋ ๋ฌธ์์ด์์ ์ ๊ฑฐํ ๋ฌธ์์ด |
5. string.translate(table) ํ๋ผ๋ฏธํฐ table : Required parameter(ํ์), ๊ต์ฒด๋ฅผ ์ํํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํ๋ ์ฌ์ ๋๋ ๋งคํ ํ ์ด๋ธ
6. ์์ ์ฝ๋
# ๊ฐ์ ๊ธธ์ด์ ๋ฌธ์๋ง ๋ณ๊ฒฝ์ด ๋๋ค
txt = "Hi I am Dona!"
x = "I"
y = "i"
mytable = txt.maketrans(x, y)
print(txt.translate(mytable)) # Hi i am Dona!
๐ ๋ฆฌ์คํธ ์ ๋ ฌ ๊ด๋ จ ์ฐธ๊ณ ๋งํฌ : https://imdona.tistory.com/14
2. ๋๋ฒ์งธ ์๋
๊น๋ํ๊ฒ ์ ๋ฆฌํ๊ธฐ๐งน
maketrans( )& translate( ) ๋ฉ์๋๊ฐ ์๋๋ผ, ๋์ ๋๋ฆฌ์ join ๋ฉ์๋๋ฅผ ํ์ฉํ์ฌ ์ถฉ๋ถํ ๋์ฑ ๊ฐ๋จํ๊ฒ ํ์ดํ ์ ์๋ค.
M, N = map(int, input().split())
dict = {'0':'zero', '1':'one', '2':'two', '3':'three', '4':'four', '5':'five', '6':'six', '7':'seven', '8':'eight', '9':'nine'}
alphabet_list = []
for i in range(M, N + 1):
alphabet = ' '.join([dict[j] for j in str(i)])
alphabet_list.append([i, alphabet])
alphabet_list.sort(key = lambda x : x[1])
for i in range(len(alphabet_list)):
if i % 10 == 0 and i != 0:
print(sep = '\n')
print(alphabet_list[i][0], end = " ")
๐ joinํจ์ ๊ฐ๋จํ๊ฒ ์ ๋ฆฌ
- ์ด๋ค ํจ์์ธ๊ฐ์? ๋งค๊ฐ๋ณ์๋ก ๋ค์ด์จ ๋ฆฌ์คํธ์ ์๋ ์์ ํ๋ํ๋๋ฅผ ํฉ์ณ์ ํ๋์ ๋ฌธ์์ด๋ก ๋ฐ๊พธ์ด ๋ฐํํด์ฃผ๋ ํจ์!
- ''.join(๋ฆฌ์คํธ) : ๋งค๊ฐ๋ณ์๋ก ๋ค์ด์จ ๋ฆฌ์คํธ๋ฅผ ๋ฌธ์์ด๋ก ํฉ์ณ์ ๋ฆฌํด
- ' ' ์์ ๋ค์ด๊ฐ๋ ๊ฐ์ด ๊ตฌ๋ถ์!
- ์์์ฝ๋
## ์์ 1
my_list = ['a', 'b', 'c']
print(''.join(my_list))
# out : abc
## ์์ 2
coordinate_list = ['1 -1\n', '1 2\n', '2 2\n', '3 3\n', '0 4\n']
print(''.join(coordinate_list))
'''
out :
1 -1
1 2
2 2
3 3
0 4
'''
## ์์ 3
my_list = ['a', 'b', 'c']
print("--".join(my_list))
# out : a--b--c
๐ RERENCE
- python string maketrans ( ) method : https://www.w3schools.com/python/ref_string_maketrans.asp
- python string translate ( ) method : https://www.w3schools.com/python/ref_string_translate.asp
- ๋ธ๋ก๊ทธ : https://www.delftstack.com/ko/howto/python/python-replace-multiple-characters/#python%EC%97%90%EC%84%9C-%EC%97%AC%EB%9F%AC-%EB%AC%B8%EC%9E%90%EB%A5%BC-%EB%8C%80%EC%B2%B4%ED%95%98%EB%8A%94-translate-%EB%B0%8F-maketrans