Home๊ธฐ์ˆ  & ์ฝ”๋”ฉ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ๐Ÿ“š ๋ฐฑ์ค€ 1302 ๋ฒˆ ํŒŒ์ด์ฌ ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ํ™œ์šฉํ•œ ๋ฒ ์ŠคํŠธ์…€๋Ÿฌ ์ฐพ๊ธฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜

๐Ÿ“š ๋ฐฑ์ค€ 1302 ๋ฒˆ ํŒŒ์ด์ฌ ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ํ™œ์šฉํ•œ ๋ฒ ์ŠคํŠธ์…€๋Ÿฌ ์ฐพ๊ธฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜

๐Ÿ“š ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ํ™œ์šฉํ•œ ๋ฒ ์ŠคํŠธ์…€๋Ÿฌ ์ฐพ๊ธฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜

https://www.acmicpc.net/problem/1302

๋ฐฑ์ค€ 1302๋ฒˆ ๋ฒ ์ŠคํŠธ์…€๋Ÿฌ ๋ฌธ์ œ๋Š” ๊ฐ€์žฅ ๋งŽ์ด ํŒ”๋ฆฐ, ์ฆ‰ ํŒ๋งค๋Ÿ‰์ด ๊ฐ€์žฅ ๋†’์€ ์ฑ…์„ ์ฐพ๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ์˜ ํ•ต์‹ฌ์€ ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ํ™œ์šฉํ•ด ํŒ๋งค๋Ÿ‰์„ ํšจ๊ณผ์ ์œผ๋กœ ๊ณ„์‚ฐํ•˜๊ณ , ์กฐ๊ฑด์— ๋งž๋Š” ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋ฐ ์žˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ” ๋ฌธ์ œ ์ดํ•ด์™€ ํ•ด์„

1. ๋ฌธ์ œ ์š”๊ตฌ์‚ฌํ•ญ

โ€“ ์˜ค๋Š˜ ํŒ๋งค๋œ ์ฑ…๋“ค ์ค‘ ๊ฐ€์žฅ ๋งŽ์ด ํŒ”๋ฆฐ ์ฑ…์˜ ์ œ๋ชฉ์„ ์ถœ๋ ฅ

โ€“ ๊ฐ€์žฅ ๋งŽ์ด ํŒ”๋ฆฐ ์ฑ…์ด ์—ฌ๋Ÿฌ ๊ฐœ์ผ ๊ฒฝ์šฐ ์‚ฌ์ „์ˆœ์œผ๋กœ ๊ฐ€์žฅ ์•ž์„œ๋Š” ์ฑ…์„ ์ถœ๋ ฅ

โ€“ ์ž…๋ ฅ์€ 1,000๊ฐœ ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜ N(์ฑ…์˜ ๊ฐœ์ˆ˜)๊ณผ N๊ฐœ์˜ ์ฑ… ์ œ๋ชฉ์œผ๋กœ ๊ตฌ์„ฑ

2. ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ๋ถ„์„

โ€“ ์˜ˆ์ œ 1: “top”์ด 4๋ฒˆ ํŒ”๋ ค ๊ฐ€์žฅ ๋งŽ์ด ํŒ”๋ฆฐ ์ฑ…์œผ๋กœ ์„ ์ •๋˜์—ˆ๋‹ค

โ€“ ์˜ˆ์ œ 3: “a”์™€ “b”๊ฐ€ ๊ฐ๊ฐ 3๋ฒˆ์”ฉ ํŒ”๋ ค ๊ณต๋™ 1์œ„์ด๋‚˜, ์‚ฌ์ „์ˆœ์œผ๋กœ “a”๊ฐ€ ์•ž์„œ๋ฏ€๋กœ “a” ์ถœ๋ ฅ

โ€“ ์˜ˆ์ œ 4: “icecream”, “peanuts”, “chocolate”์ด ๊ฐ๊ฐ 2๋ฒˆ์”ฉ ํŒ”๋ ค ๊ณต๋™ 1์œ„์ด๋‚˜, ์‚ฌ์ „์ˆœ์œผ๋กœ “chocolate”์ด ๊ฐ€์žฅ ์•ž์„œ “chocolate” ์ถœ๋ ฅ

๐Ÿ’ก ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ค๊ณ„ ์ „๋žต

1. ์ž๋ฃŒ๊ตฌ์กฐ ์„ ํƒ

โ€“ ๋”•์…”๋„ˆ๋ฆฌ(ํ•ด์‹œ๋งต)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฑ… ์ œ๋ชฉ(ํ‚ค)๊ณผ ํŒ๋งค๋Ÿ‰(๊ฐ’)์„ ๊ด€๋ฆฌ

โ€“ ๋”•์…”๋„ˆ๋ฆฌ์˜ ํ‚ค-๊ฐ’ ์Œ์„ ์ด์šฉํ•ด ํšจ์œจ์ ์œผ๋กœ ํŒ๋งค๋Ÿ‰ ์ง‘๊ณ„ ๊ฐ€๋Šฅ

2. ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ๋ฆ„๋„

`1. ๋นˆ ๋”•์…”๋„ˆ๋ฆฌ ์ƒ์„ฑ 2. ๊ฐ ์ฑ… ์ž…๋ ฅ ๋ฐ›์„ ๋•Œ๋งˆ๋‹ค:

  • ๋”•์…”๋„ˆ๋ฆฌ์— ํ•ด๋‹น ์ฑ…์ด ์žˆ์œผ๋ฉด ํŒ๋งค๋Ÿ‰ 1 ์ฆ๊ฐ€
  • ์—†์œผ๋ฉด ๋”•์…”๋„ˆ๋ฆฌ์— ์ƒˆ๋กœ ์ถ”๊ฐ€ํ•˜๊ณ  ํŒ๋งค๋Ÿ‰ 1๋กœ ์„ค์ •
  1. ๋”•์…”๋„ˆ๋ฆฌ ๊ฐ’ ์ค‘ ์ตœ๋Œ“๊ฐ’(๊ฐ€์žฅ ๋งŽ์ด ํŒ”๋ฆฐ ๊ถŒ์ˆ˜) ์ฐพ๊ธฐ
  2. ์ตœ๋Œ“๊ฐ’๊ณผ ๊ฐ™์€ ํŒ๋งค๋Ÿ‰์„ ๊ฐ€์ง„ ์ฑ…๋“ค์„ ๋ฆฌ์ŠคํŠธ์— ์ถ”๊ฐ€
  3. ๋ฆฌ์ŠคํŠธ ์‚ฌ์ „์ˆœ ์ •๋ ฌ
  4. ์ •๋ ฌ๋œ ๋ฆฌ์ŠคํŠธ์˜ ์ฒซ ๋ฒˆ์งธ ์š”์†Œ ์ถœ๋ ฅ`

๐Ÿงฉ ์ฝ”๋“œ ๊ตฌํ˜„๊ณผ ์„ค๋ช…

1. ์ž…๋ ฅ ์ฒ˜๋ฆฌ์™€ ๋”•์…”๋„ˆ๋ฆฌ ์ดˆ๊ธฐํ™”

import sys
input = sys.stdin.readline

d = dict()
for _ in range(int(input())):
    book = input().rstrip()
    if book in d:
        d[book] += 1
    else:
        d[book] = 1

โ€“ sys.stdin.readline์„ ์‚ฌ์šฉํ•ด ์ž…๋ ฅ ์†๋„ ๊ฐœ์„ 

โ€“ ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ์ด์šฉํ•ด ์ฑ… ์ œ๋ชฉ๊ณผ ํ•ด๋‹น ์ฑ…์˜ ํŒ๋งค๋Ÿ‰์„ ๊ธฐ๋ก

2. ์ตœ๋‹ค ํŒ๋งค ์ฑ… ์ฐพ๊ธฐ

m = max(d.values())
candidates = []
for k, v in d.items():
    if v == m:
        candidates.append(k)
candidates.sort()
print(candidates[0])

โ€“ **d.values()**๋กœ ๋ชจ๋“  ํŒ๋งค๋Ÿ‰์„ ๊ฐ€์ ธ์™€ ๊ทธ ์ค‘ ์ตœ๋Œ“๊ฐ’์„ ์ฐพ์Œ

โ€“ ์ตœ๋‹ค ํŒ๋งค๋Ÿ‰๊ณผ ์ผ์น˜ํ•˜๋Š” ์ฑ…๋“ค์„ ํ›„๋ณด ๋ฆฌ์ŠคํŠธ์— ์ถ”๊ฐ€

โ€“ ํ›„๋ณด ๋ฆฌ์ŠคํŠธ๋ฅผ ์‚ฌ์ „์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜์—ฌ ์ฒซ ๋ฒˆ์งธ ์š”์†Œ ์ถœ๋ ฅ

import sys
input = sys.stdin.readline

d = dict()
for _ in range(int(input())):
    book = input().rstrip()
    if book in d:
        d[book] += 1
    else:
        d[book] = 1
# print(d)
# 5
# top
# top
# top
# top
# kimtop
# {'top': 4, 'kimtop': 1}

m = max(d.values())
candidates = []
# print(m) # 4
for k,v in d.items():
    if v == m:
        candidates.append(k)
candidates.sort()
print(candidates[0])

๐Ÿ“Š ์˜ˆ์ œ ์‹คํ–‰ ๊ณผ์ •

1. ์˜ˆ์ œ ์ž…๋ ฅ 1 ์‹คํ–‰ ๊ณผ์ •

โ€“ ์ž…๋ ฅ: “top” 4๋ฒˆ, “kimtop” 1๋ฒˆ

โ€“ ๋”•์…”๋„ˆ๋ฆฌ ์ƒํƒœ: {'top': 4, 'kimtop': 1}

โ€“ ์ตœ๋Œ€ ํŒ๋งค๋Ÿ‰: 4๊ถŒ

โ€“ ํ›„๋ณด ๋ฆฌ์ŠคํŠธ: ['top']

โ€“ ์ถœ๋ ฅ: “top”

2. ์˜ˆ์ œ ์ž…๋ ฅ 3 ์‹คํ–‰ ๊ณผ์ •

โ€“ ์ž…๋ ฅ: “a” 3๋ฒˆ, “b” 3๋ฒˆ

โ€“ ๋”•์…”๋„ˆ๋ฆฌ ์ƒํƒœ: {'a': 3, 'b': 3}

โ€“ ์ตœ๋Œ€ ํŒ๋งค๋Ÿ‰: 3๊ถŒ

โ€“ ํ›„๋ณด ๋ฆฌ์ŠคํŠธ: ['a', 'b']

โ€“ ์ •๋ ฌ ํ›„: ['a', 'b']

โ€“ ์ถœ๋ ฅ: “a”

๐Ÿ”‘ ํ•ต์‹ฌ ํฌ์ธํŠธ ์ •๋ฆฌ

1. ์ž๋ฃŒ๊ตฌ์กฐ ํ™œ์šฉ

โ€“ ๋”•์…”๋„ˆ๋ฆฌ๋Š” ํ‚ค-๊ฐ’ ์Œ์„ ์ €์žฅํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๋กœ, ์ฑ… ์ œ๋ชฉ๊ณผ ํŒ๋งค๋Ÿ‰์„ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌ

โ€“ ์‹œ๊ฐ„ ๋ณต์žก๋„: ๋ฐ์ดํ„ฐ ๊ฒ€์ƒ‰/์‚ฝ์ž…/์‚ญ์ œ ๋ชจ๋‘ O(1) (ํ‰๊ท )

2. ํŒŒ์ด์ฌ ๊ธฐ๋ณธ ํ•จ์ˆ˜ ํ™œ์šฉ

โ€“ max() ํ•จ์ˆ˜๋กœ ์ตœ๋Œ“๊ฐ’ ์ฐพ๊ธฐ

โ€“ sort() ๋ฉ”์„œ๋“œ๋กœ ์‚ฌ์ „์ˆœ ์ •๋ ฌ

โ€“ dict.items(), dict.values() ๋ฉ”์„œ๋“œ๋กœ ๋”•์…”๋„ˆ๋ฆฌ ๋ฐ์ดํ„ฐ ์ ‘๊ทผ

3. ์กฐ๊ฑด ์ฒ˜๋ฆฌ

โ€“ ๋™์ผํ•œ ํŒ๋งค๋Ÿ‰์„ ๊ฐ€์ง„ ์ฑ…์ด ์—ฌ๋Ÿฌ ๊ถŒ์ผ ๊ฒฝ์šฐ ์‚ฌ์ „์ˆœ ์ •๋ ฌ์„ ํ†ตํ•ด ํ•ด๊ฒฐ

โ€“ ํŒ๋งค๋œ ์ฑ…์ด ํ•œ ์ข…๋ฅ˜์ผ ๊ฒฝ์šฐ์—๋„ ์ •์ƒ ์ž‘๋™

๐ŸŽฏ ์‘์šฉ ๋ฐ ํ™•์žฅ ๊ฐ€๋Šฅ์„ฑ

1. ๋‹ค์–‘ํ•œ ์ •๋ ฌ ๊ธฐ์ค€ ์ ์šฉ

โ€“ ํŒ๋งค๋Ÿ‰์ด ๊ฐ™์„ ๋•Œ ๋‹ค๋ฅธ ๊ธฐ์ค€(์˜ˆ: ๊ฐ€๊ฒฉ, ์ถœ๊ฐ„์ผ)์œผ๋กœ ์ •๋ ฌํ•˜๋„๋ก ํ™•์žฅ ๊ฐ€๋Šฅ

โ€“ ๋ณตํ•ฉ ์ •๋ ฌ ๊ธฐ์ค€ ์ ์šฉ: candidates.sort(key=lambda x: (x[1], x))

2. ์‹ค๋ฌด ํ™œ์šฉ

โ€“ ์‹ค์ œ ์„œ์  POS ์‹œ์Šคํ…œ์—์„œ์˜ ๋ฒ ์ŠคํŠธ์…€๋Ÿฌ ์ง‘๊ณ„ ๋กœ์ง์œผ๋กœ ํ™œ์šฉ ๊ฐ€๋Šฅ

โ€“ ๋ฐ์ดํ„ฐ ๋ถ„์„์—์„œ ๋นˆ๋„์ˆ˜ ๊ธฐ๋ฐ˜ ์ฒ˜๋ฆฌ์— ์‘์šฉ ๊ฐ€๋Šฅ

์ด ๋ฌธ์ œ๋Š” ๋”•์…”๋„ˆ๋ฆฌ ์ž๋ฃŒ๊ตฌ์กฐ์˜ ํŠน์„ฑ์„ ์ž˜ ํ™œ์šฉํ•œ ๋ฌธ์ œ๋กœ, ์‹ค์ƒํ™œ์˜ ๋ฐ์ดํ„ฐ ์ง‘๊ณ„ ์ƒํ™ฉ์—์„œ๋„ ์œ ์‚ฌํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

- Advertisment -

Most Popular

Recent Comments