Hello๐ I'm Dona!:)
์ง๋ ํฌ์คํ ์ ์ด์ด์ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ์์ ์์ฃผ ์ฐ์ด๋ ๋ค์ค ์กฐ๊ฑด ์ ๋ ฌ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค.
sort์ sorted์ documentation ์๊ฐ๋ ์ง๋ ํฌ์คํ ์ฐธ๊ณ ํด์ฃผ์ธ์! โฌ๏ธโฌ๏ธโฌ๏ธโฌ๏ธโฌ๏ธ
๋ฐฑ์ค ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ฅผ ์์๋ก ๋ฐฐ์๋ด ์๋ค!
๋ฐฑ์ค 1181๋ฒ [๋จ์ด ์ ๋ ฌ]
๋ฌธ์
์ํ๋ฒณ ์๋ฌธ์๋ก ์ด๋ฃจ์ด์ง N๊ฐ์ ๋จ์ด๊ฐ ๋ค์ด์ค๋ฉด ์๋์ ๊ฐ์ ์กฐ๊ฑด์ ๋ฐ๋ผ ์ ๋ ฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
1. ๊ธธ์ด๊ฐ ์งง์ ๊ฒ๋ถํฐ
2. ๊ธธ์ด๊ฐ ๊ฐ์ผ๋ฉด ์ฌ์ ์์ผ๋ก
์ ๋ ฅ
์ฒซ์งธ ์ค์ ๋จ์ด์ ๊ฐ์ N์ด ์ฃผ์ด์ง๋ค. (1 ≤ N ≤ 20,000) ๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์ ๊ฑธ์ณ ์ํ๋ฒณ ์๋ฌธ์๋ก ์ด๋ฃจ์ด์ง ๋จ์ด๊ฐ ํ ์ค์ ํ๋์ฉ ์ฃผ์ด์ง๋ค. ์ฃผ์ด์ง๋ ๋ฌธ์์ด์ ๊ธธ์ด๋ 50์ ๋์ง ์๋๋ค.
์ถ๋ ฅ
์กฐ๊ฑด์ ๋ฐ๋ผ ์ ๋ ฌํ์ฌ ๋จ์ด๋ค์ ์ถ๋ ฅํ๋ค. ๋จ, ๊ฐ์ ๋จ์ด๊ฐ ์ฌ๋ฌ ๋ฒ ์ ๋ ฅ๋ ๊ฒฝ์ฐ์๋ ํ ๋ฒ์ฉ๋ง ์ถ๋ ฅํ๋ค.
์ ๋ ฅ๋๋ ์์
13
but
i
wont
hesitate
no
more
no
more
it
cannot
wait
im
yours
๋ฌธ์ ๋ฅผ ๋ณด์๋ฉด ์ ๋ ฌ์ ๊ธฐ์ค์ด ๋ ๊ฐ์ง์ ๋๋ค.
1. ๊ธธ์ด
2. ์ฌ์ ์
๋ฌผ๋ก ์๋์ ๊ฐ์ด "key=len" ์ด๋ผ๋ ํ๋ผ๋ฏธํฐ๋ง ๋ฃ์ด์ฃผ์ด๋ ์ฌ์ ์์ผ๋ก ์ ๋ ฌ๋๊ธฐ๋ ํ์ง๋ง, ์ค๋ ๋ฐฐ์ธ ๋ค์ค ์กฐ๊ฑด ์ ๋ ฌ๋ก๋ ์ ์ฉํด์ ํ์ด๋ณผ๊ป์!
'''์ฒซ๋ฒ์งธ ๋ฐฉ๋ฒ
-> sort(key=len) : ๊ธธ์ด ์์ผ๋ก ์ ๋ ฌ
sort(key=func) : func๋ ํ๋์ ๊ฐ์ ์ทจํ๊ณ ์ ๋ ฌ์ ์๋ดํ๋ ํ๋ก์ ๊ฐ์ ๋ฐํํ๋ ํจ์'''
N = int(input())
word_list = [input() for _ in range(N)]
word_list = sorted(list(set(word_list))) # ์ค๋ณต ์ ๊ฑฐ
word_list.sort(key=len) # str ๊ธธ์ด ์ ์ ๋ ฌ
for word in word_list:
print(word)
๋ ์กฐ๊ฑด์ ์ ์ฉํ๊ธฐ ์ํด์ (word, len(word))๊ฐ ๋ค์ด ์๋ ํํ์ ๋ง๋ค์์ด์!
๊ทธ๋ฆฌ๊ณ key ์กฐ๊ฑด์ ํจ์๋ก lamda๋ฅผ ๋๊ฒจ์ฃผ๊ณ ๊ธธ์ด ์์ธ x[1] -> ์ฌ์ ์์ธ x[0] ์์ผ๋ก ์ ๋ ฌ์ ํด์ค๋๋ค!
(์ฌ๊ธฐ์ x๋ ํ๋์ ํํ์ ์๋ก ๋ค๋ฉด, ('word', 4) ๋ผ๋ ํํ์์ ์ธ๋ฑ์ค ๋ฒํธ๊ฐ 0๋ฒ์ด ๋จ์ด์ด๊ณ 1๋ฒ์ด ๊ธธ์ด๊ฒ ์ฃ !)
๊ฒฐ๋ก ์ lambda ํจ์๋ฅผ ์ด์ฉํด์ ์ํ๋ ํจ์๋ก ์์๋ก ๋ค์ค ์กฐ๊ฑด ์ ๋ ฌ์ด ๊ฐ๋ฅํ๋ค๋ ๊ฒ์ ๋๋คโบ๏ธ
'''๋๋ฒ์งธ ๋ฐฉ๋ฒ
1. word, word์ ๊ธธ์ด์ธ ํํ์ ์์๋ก ๊ฐ๋ ๋ฆฌ์คํธ๋ก ๋ง๋ ๋ค
2. ์ ๋ ฌ ๋ฉ์๋์ธ sort์ key optional parameter ์ฌ์ฉ(๊ธธ์ด(x[1]) -> ์ํ๋ฒณ ์(x[0]) ์ ๋ ฌ)'''
N = int(input())
word_list = []
for i in range(N):
word = str(input())
word_list.append((word, len(word))) # word, word์ ๊ธธ์ด์ธ ํํ์ ์์๋ก ๊ฐ๋ ๋ฆฌ์คํธ๋ก ๋ง๋ ๋ค
word_list = list(set(word_list))
word_list.sort(key = lambda x: (x[1], x[0]))
# ์ ๋ ฌ ๋ฉ์๋์ธ sort์ key optional parameter ์ฌ์ฉ(๊ธธ์ด(x[1]) -> ์ํ๋ฒณ ์(x[0]) ์ ๋ ฌ)
for i in word_list:
print(i[0])
์ธ๋ฒ์งธ ๋ฐฉ๋ฒ์ ์ ๊ฐ ํด๋น ๋ฌธ์ ๋ฅผ ๊ณ ๋ฏผํ๋ฉด์ ๋ค๋ฆ๊ฒ ์๊ฐ์ด ๋ ๋ฐฉ๋ฒ์ธ๋ฐ, ํํ์ ์์๋ฅผ len, word ์์ผ๋ก ๋ฐ๊พธ๋ฉด lambda ํจ์ ์ฌ์ฉํ์ง ์๊ณ ๋ฐ๋ก ์ ๋ ฌ ํ ์ ์์ต๋๋ค!
'''์ธ๋ฒ์งธ ๋ฐฉ๋ฒ
-> ๋๋ฒ์งธ ๋ฐฉ๋ฒ์์ ํํ์ ์์๋ฅผ len, word ์์ผ๋ก ๋ฐ๊พธ๋ฉด lambda ํจ์ ์ฌ์ฉํ์ง ์๊ณ ๋ฐ๋ก ์ ๋ ฌ ํ ์ ์๋ค'''
N = int(input())
word_list = []
for i in range(N):
word = str(input())
word_list.append((len(word), word)) # len, word์ธ ํํ์ ์์๋ก ๊ฐ๋ ๋ฆฌ์คํธ๋ก ๋ง๋ ๋ค
word_list = list(set(word_list))
word_list.sort() # ํํ์ ์ฒซ๋ฒ์งธ ๊ฐ์ธ len๋จผ์ ์ ๋ ฌ -> word ๋ค์์ผ๋ก ์์์ ์ ๋ ฌํจ!
for word_len, word in word_list:
print(word)
์๊ณ ๋ฆฌ์ฆ ๋ง๊ณ ์์๋ก๋ ํ๋ฒ ๋ง๋๋ณผ๊น์?! (์๋ REFERENCE ๋ธ๋ก๊ทธ ์ฐธ๊ณ ํ์ต๋๋ค โบ๏ธ)
(์ด๋ฆ , ๋์ด , ์ฌ์ฐ) ์ผ๋ก ์์๋ฅผ ๋ค์ด๋ณด๊ฒ ์ต๋๋ค.
์๋์ ๋ค์ค ์กฐ๊ฑด์ผ๋ก ์ ๋ ฌ์ ํด๋ด ์๋ค!
1. ๋์ด ์์ผ๋ก ์ค๋ฆ์ฐจ์
2. ๊ฐ์ ๋์ด๋ผ๋ฉด ์ฌ์ฐ์ผ๋ก ๋ด๋ฆผ์ฐจ์
# (<์ด๋ฆ> , <๋์ด> , <์ฌ์ฐ>)
array = [("Dona", 27, 300) , ("Mr.Salmon", 27, 10000), ("KingHee", 20, 200000),("Seoki",13,5000000), ("Teco", 70, 5000000)]
array.sort(key = lambda x: (x[1], -x[2]))
print(array)
# print out : [('Seoki', 13, 5000000), ('KingHee', 20, 200000), ('Mr.Salmon', 27, 10000), ('Dona', 27, 300), ('Teco', 70, 5000000)]
1. ๋์ด ์์ผ๋ก ์ค๋ฆ์ฐจ์ -> ํํ์ ์ธ๋ฑ์ค ๋ฒํธ 1(๋์ด), +(์ค๋ฆ์ฐจ์)
2. ๊ฐ์ ๋์ด๋ผ๋ฉด ์ฌ์ฐ์ผ๋ก ๋ด๋ฆผ์ฐจ์ -> ํํ์ ์ธ๋ฑ์ค๋ฒํธ2(์ฌ์ฐ), -(๋ด๋ฆผ์ฐจ์)
์ด์์ผ๋ก ํฌ์คํ ์ ๋ง์น๊ฒ ์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค. ํ๋ฆฐ ๋ด์ฉ์ด ์๋ค๋ฉด ๋๊ธ๋ก ์๋ ค์ฃผ์ธ์ :) GO FOR IT!! BYE!! ๐
REFERENCE
- ์ฐธ๊ณ ํ ๋ธ๋ก๊ทธ : https://infinitt.tistory.com/122
- https://imdona.tistory.com/12