λ°±μ€ 1755 [μ«μλμ΄] : νμ΄μ¬ & λ¬Έμμ΄ μ λ ¬ (with maketrans & translate, join)
π λ¬Έμ
https://www.acmicpc.net/problem/1755
1755λ²: μ«μλμ΄
79λ₯Ό μμ΄λ‘ μ½λ μ«μ λ¨μλ‘ νλμ© μ½λλ€λ©΄ "seven nine"μ΄ λλ€. 80μ λ§μ°¬κ°μ§λ‘ "eight zero"λΌκ³ μ½λλ€. 79λ 80λ³΄λ€ μμ§λ§, μμ΄λ‘ μ«μ νλμ© μ½λλ€λ©΄ "eight zero"κ° "seven nine"λ³΄λ€ μ¬μ μμΌλ‘
www.acmicpc.net
π νμ΄
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
[python] List(2) list sorting : λ€μ€ 쑰건 μ λ ¬ & λ°±μ€ 1181λ²[λ¨μ΄ μ λ ¬]
Helloπ I'm Dona!:) μ§λ ν¬μ€ν μ μ΄μ΄μ μκ³ λ¦¬μ¦ λ¬Έμ μμ μμ£Ό μ°μ΄λ λ€μ€ 쑰건 μ λ ¬μ λν΄ μμλ³΄κ² μ΅λλ€. sortμ sortedμ documentation μκ°λ μ§λ ν¬μ€ν μ°Έκ³ ν΄μ£ΌμΈμ! β¬οΈβ¬οΈβ¬οΈβ¬οΈβ¬
imdona.tistory.com
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