๐ ๋ฌธ์
https://www.acmicpc.net/problem/20920
๐ ํ์ด
๋์ ๋๋ฆฌ ์ฌ์ฉ
sortedํจ์ ์ฌ์ฉ
๐ป ๋ด ์ฝ๋
# ์กฐ๊ฑด
# 1.m๊ธธ์ด ์ด์
# 2.์
๋ ฅ ํ์๊ฐ 2์ด์์ธ ์ ๋ค์ค ๋น๋์๊ฐ ๋์ ๋จ์ด์์ผ๋ก-> ๋์
๋๋ฆฌ
# 3.๋จ์ด ๊ธธ์ด๊ฐ ๊ธด ์์ผ๋ก
# 4.์ํ๋ฒณ ์ฌ์ ์์ผ๋ก
import sys
n,m = map(int, input().split())
result = dict()
for i in range(n):
word = sys.stdin.readline().rstrip()
if len(word) >= m:
# ์ด๋ฏธ result์ ์์ผ๋ฉด 1 ์ฆ๊ฐ
if word in result:
result[word] += 1
# ๊ธฐ๋ณธ๊ฐ์ผ๋ก word์ value๋ 1
else:
result[word] = 1
result = sorted(result.items(), key = lambda x : (-x[1], -len(x[0]), x[0]))
# print(sorted(result.items()))
for i in result:
print(i[0])
๐ป ๋ต์
//
๐ ์ฐธ๊ณ ์๋ฃ
โบ๏ธ ์๋ก ์๊ฒ ๋ ์ง์
1. lambda์
result.sort(key=lambda x: (-x[1], -len(x[0]), x[0]))
- ์ ๋ ฌ ๊ธฐ์ค์ ์ ์ํ๋ key ๋งค๊ฐ๋ณ์์ ์ฌ์ฉ๋ ์ต๋ช ํจ์์ ๋๋ค.
- ๊ฐ ์์ x๋ ํํ ํํ (word, count)๋ก ์ ๋ฌ๋ฉ๋๋ค.
- ์ ๋ ฌ ๊ธฐ์ค:
- -x[1]: ๋น๋์(ํํ์ ๋ ๋ฒ์งธ ์์)๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์.
- -len(x[0]): ๋จ์ด ๊ธธ์ด(์ฒซ ๋ฒ์งธ ์์์ ๊ธธ์ด)๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์.
- x[0]: ์ํ๋ฒณ ์(์ฒซ ๋ฒ์งธ ์์)๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์.
- ๋ก ์ค๋ฆ์ฐจ์/ ๋ด๋ฆผ์ฐจ์
๋ํดํธ๋ ์ค๋ฆ์ฐจ์!
<๋จ์ ์์ >
square = lambda x: x ** 2
print(square(5)) # ์ถ๋ ฅ: 25
is_even = lambda x: "Even" if x % 2 == 0 else "Odd"
print(is_even(4)) # ์ถ๋ ฅ: Even
2. items()ํจ์
๋์ ๋๋ฆฌ ๋ด (key, value) ํํ ํ์์ผ๋ก ์ถ๋ ฅ
[('apple', 3), ('banana', 5), ('cherry', 2)]
3. ๋์ ๋๋ฆฌ ๋ด key ๋๋ value๋ง ์ถ๋ ฅํ๊ณ ์ถ์ ๋
#๋ชจ๋ key ๊ฐ๋ง ์ถ๋ ฅ
for i in result:
print(i[0])
#๋ชจ๋ value ๊ฐ๋ง ์ถ๋ ฅ
for i in result:
print(i[1])
4. ๋์ ๋๋ฆฌ ์์ฑ ๋ฐ ์ถ๊ฐ
์์ฑ : a = dict() ํน์ {}
์ถ๊ฐ : update() ๋ ์์
# ๋น ๋์
๋๋ฆฌ ์์ฑ
my_dict = {}
# ํค-๊ฐ ์ ์ถ๊ฐ
my_dict["apple"] = 3
my_dict["banana"] = 5
print(my_dict)
๐ ๋ฆฌ๋ทฐ
๋์ ๋๋ฆฌ ํ์ฉ ์์ ๋กญ๊ฒ ํ ์์๋๋ก ์ฐ์ต
'Algorithm > Implement' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
2852๋ฒ/NBA ๋๊ตฌ (0) | 2025.01.23 |
---|---|
10709๋ฒ / ๊ธฐ์์บ์คํฐ / ๊ตฌํ / 2์ฐจ์ ๋ฐฐ์ด (0) | 2025.01.14 |
1764๋ฒ / ๋ฃ๋ณด์ก/ ๋ฌธ์์ด (0) | 2025.01.10 |
4659๋ฒ/ ๋น๋ฐ๋ฒํธ/ ๋ฌธ์์ด (๋ค์) (0) | 2025.01.06 |
20291๋ฒ/ ํ์ผ์ ๋ฆฌ/ ๋์ ๋๋ฆฌ (0) | 2025.01.05 |