2910. ๋นˆ๋„ ์ •๋ ฌ (Silver 3)

# ์ž๋ฃŒ๊ตฌ์กฐ

์œ„๋Œ€ํ•œ ํ•ด์ปค ์ฐฝ์˜์ด๋Š” ๋ชจ๋“  ์•”ํ˜ธ๋ฅผ ๊นจ๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐœ๊ฒฌํ–ˆ๋‹ค. ๊ทธ ๋ฐฉ๋ฒ•์€ ๋นˆ๋„๋ฅผ ์กฐ์‚ฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

์ฐฝ์˜์ด๋Š” ๋งํ•  ์ˆ˜ ์—†๋Š” ๋ฐฉ๋ฒ•์„ ์ด์šฉํ•ด์„œ ํ˜„์šฐ๊ฐ€ ๊ฐ•์‚ฐ์ด์—๊ฒŒ ๋ณด๋‚ด๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ํš๋“ํ–ˆ๋‹ค. ์ด ๋ฉ”์‹œ์ง€๋Š” ์ˆซ์ž N๊ฐœ๋กœ ์ด๋ฃจ์–ด์ง„ ์ˆ˜์—ด์ด๊ณ , ์ˆซ์ž๋Š” ๋ชจ๋‘ C๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๋‹ค. ์ฐฝ์˜์ด๋Š” ์ด ์ˆซ์ž๋ฅผ ์ž์ฃผ ๋“ฑ์žฅํ•˜๋Š” ๋นˆ๋„์ˆœ๋Œ€๋กœ ์ •๋ ฌํ•˜๋ ค๊ณ  ํ•œ๋‹ค.

๋งŒ์•ฝ, ์ˆ˜์—ด์˜ ๋‘ ์ˆ˜ X์™€ Y๊ฐ€ ์žˆ์„ ๋•Œ, X๊ฐ€ Y๋ณด๋‹ค ์ˆ˜์—ด์—์„œ ๋งŽ์ด ๋“ฑ์žฅํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” X๊ฐ€ Y๋ณด๋‹ค ์•ž์— ์žˆ์–ด์•ผ ํ•œ๋‹ค. ๋งŒ์•ฝ, ๋“ฑ์žฅํ•˜๋Š” ํšŸ์ˆ˜๊ฐ€ ๊ฐ™๋‹ค๋ฉด, ๋จผ์ € ๋‚˜์˜จ ๊ฒƒ์ด ์•ž์— ์žˆ์–ด์•ผ ํ•œ๋‹ค.

์ด๋ ‡๊ฒŒ ์ •๋ ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋นˆ๋„ ์ •๋ ฌ์ด๋ผ๊ณ  ํ•œ๋‹ค.

์ˆ˜์—ด์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, ๋นˆ๋„ ์ •๋ ฌ์„ ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค

 

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— ๋ฉ”์‹œ์ง€์˜ ๊ธธ์ด N๊ณผ C๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (1 ≤ N ≤ 1,000, 1 ≤ C ≤ 1,000,000,000)

๋‘˜์งธ ์ค„์— ๋ฉ”์‹œ์ง€ ์ˆ˜์—ด์ด ์ฃผ์–ด์ง„๋‹ค.

 

์ถœ๋ ฅ

์ฒซ์งธ ์ค„์— ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง„ ์ˆ˜์—ด์„ ๋นˆ๋„ ์ •๋ ฌํ•œ ๋‹ค์Œ ์ถœ๋ ฅํ•œ๋‹ค.

 

์˜ˆ์ œ ์ž…๋ ฅ1

5 2
2 1 2 1 2

์˜ˆ์ œ ์ถœ๋ ฅ1

2 2 2 1 1

 

 

 

ํ’€์ด)

๋ฉ”์‹œ์ง€์˜ ๊ธธ์ด n๊ณผ c๋ณด๋‹ค ์ž‘์€ ์ˆซ์ž๋ฅผ ์ž…๋ ฅํ•ด์•ผํ•  ๋•Œ ํ•„์š”ํ•œ c๋ฅผ ๊ฐ๊ฐ ์ž…๋ ฅ๋ฐ›์•˜๋‹ค.

code๋ฅผ ์„ ์–ธํ•ด์„œ ๋ฆฌ์ŠคํŠธ ํ˜•ํƒœ๋กœ ์•”ํ˜ธ๋ฅผ ์ž…๋ ฅ๋ฐ›๊ฒŒ ํ–ˆ๋‹ค.

๊ทธ ๋‹ค์Œ dic๋ผ๋Š” ์ด๋ฆ„์˜ ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ์„ ์–ธํ•ด์ฃผ์—ˆ๋‹ค.

for๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ code์— ์žˆ๋Š” ์›์†Œ๋“ค์„ ๊ฒ€์‚ฌํ•˜๋ฉฐ dic์— ์žˆ์ง€ ์•Š์€ ๊ฒฝ์šฐ์—๋Š” ํ•ด๋‹น ์›์†Œ์— ํ•ด๋‹นํ•˜๋Š” ์ธ๋ฑ์Šค์˜ value๋ฅผ 0์œผ๋กœ ์ €์žฅํ•ด์ฃผ์—ˆ๊ณ , ๊ทธ ์™ธ์˜ ๊ฒฝ์šฐ์—๋Š” ํ•ด๋‹น ์›์†Œ์˜ ์ธ๋ฑ์Šค์˜ value๊ฐ’์„ 1 ์ฆ๊ฐ€์‹œ์ผœ์ฃผ์—ˆ๋‹ค.

์ด ๊ณผ์ •์„ ๊ฑฐ์นœ ๋‹ค์Œ, sorted๋ฅผ ์‚ฌ์šฉํ•ด์„œ dic์›์†Œ์—์„œ value๊ฐ’์ด ํฐ ์ˆœ์œผ๋กœ(๋‚ด๋ฆผ์ฐจ์ˆœ) ์ •๋ ฌํ•œ ๊ฐ’์„ ๋‹ค์‹œ ์ €์žฅํ•ด์ฃผ์—ˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ dic์•ˆ์— ์žˆ๋Š” key์™€ value์— ๋Œ€ํ•ด์„œ value์˜ ๊ธธ์ด ๋งŒํผ ๋ฐ˜๋ณตํ•  ๋•Œ, key๊ฐ’๋งŒ์„ ๊ณต๋ฐฑ์„ ์‚ฌ์ด์— ๋‘๊ณ  ์ถœ๋ ฅํ•˜๊ฒŒ ํ•ด์ฃผ์—ˆ๋‹ค.

import sys
input = sys.stdin.readline

n, c = map(int, input().split())   # n, c ๊ณต๋ฐฑ์„ ๋‘๊ณ  ์ž…๋ ฅ
code = list(map(int, input().split()))  # ์•”ํ˜ธ ์ž…๋ ฅ

dic = {} # ๋”•์…”๋„ˆ๋ฆฌ

for i in code:
    if i not in dic:   # ๋”•์…”๋„ˆ๋ฆฌ์— ์—†์œผ๋ฉด 
        dic[i] = 0     # ํ•ด๋‹น ์ˆซ์ž์— ํ•ด๋‹นํ•˜๋Š” key์˜ value 0์œผ๋กœ ์„ค์ •
    dic[i] += 1        # ๋”•์…”๋„ˆ๋ฆฌ์— ์žˆ์œผ๋ฉด value๊ฐ’ 1 ์ฆ๊ฐ€

dic = sorted(dic.items(), key=lambda x: x[1], reverse=True)  # value๊ฐ’์ด ํฐ ๊ฒƒ๋ถ€ํ„ฐ ์ •๋ ฌ

for key, value in dic:
    for i in range(value):
        print(str(key), end=" ")  # key๊ฐ’๋งŒ ์ถœ๋ ฅ

 

 

'๋ฐฑ์ค€ > Python' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Python] ๋ฐฑ์ค€ 10816๋ฒˆ  (0) 2022.11.21
[Python] ๋ฐฑ์ค€ 1935๋ฒˆ  (0) 2022.11.21
[Python] ๋ฐฑ์ค€ 17413๋ฒˆ  (0) 2022.11.20
[Python] ๋ฐฑ์ค€ 9375๋ฒˆ  (0) 2022.11.12
[Python] ๋ฐฑ์ค€ 11652๋ฒˆ  (0) 2022.11.12
๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค!