Algorithm/Implement

20920๋ฒˆ / ์˜๋‹จ์–ด ์•”๊ธฐ๋Š” ๊ดด๋กœ์›Œ / ๋ฌธ์ž์—ด

์ •ํ˜ธ๋‚˜ 2025. 1. 12. 00:42

๐Ÿ“• ๋ฌธ์ œ

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)๋กœ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.
  • ์ •๋ ฌ ๊ธฐ์ค€:
    1. -x[1]: ๋นˆ๋„์ˆ˜(ํŠœํ”Œ์˜ ๋‘ ๋ฒˆ์งธ ์š”์†Œ)๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ.
    2. -len(x[0]): ๋‹จ์–ด ๊ธธ์ด(์ฒซ ๋ฒˆ์งธ ์š”์†Œ์˜ ๊ธธ์ด)๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ.
    3. 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)

 

 

๐Ÿ˜‰ ๋ฆฌ๋ทฐ

 

๋”•์…”๋„ˆ๋ฆฌ ํ™œ์šฉ ์ž์œ ๋กญ๊ฒŒ ํ•  ์ˆ˜์žˆ๋„๋ก ์—ฐ์Šต