๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ”‘ ์•Œ๊ณ ๋ฆฌ์ฆ˜/๋ฐฑ์ค€ Python

[๋ฐฑ์ค€] ์ •๋ ฌ /ํŒŒ์ด์ฌ - 2108 ํ†ต๊ณ„ํ•™

by Tamii 2021. 4. 20.
๋ฐ˜์‘ํ˜•
import sys
input = sys.stdin.readline
from collections import Counter

n = int(input())

num_list = [int(input()) for _ in range(n)]
ans=[]

a=[]
q = [0]*8001
for i in num_list:
    q[i+4000]+=1
qmax = max(q)
for i in range(8001):
    if q[i] == qmax:
        a.append(i-4000)

a.sort()
ans.append(round(sum(num_list)/n))
ans.append(sorted(num_list)[n//2])
if len(a)==1:
    ans.append(a[0])
else:
    ans.append(a[1])
ans.append(max(num_list)-min(num_list))
for i in ans:
    print(i)โ€‹

๐Ÿ“Œ 2108 ํ†ต๊ณ„ํ•™

๋‚ด์ƒ๊ฐ

ํ‰๊ท  : ํ•ฉ/๊ธธ์ด

์ค‘๊ฐ„๊ฐ’ : ๊ธธ์ด/2 index์— ์œ„์น˜ํ•œ ๊ฐ’

์ตœ๋นˆ๊ฐ’ : counter ๋กœ ์„ผ ํ›„์— ์ •๋ ฌ ํ›„ ๋‘๋ฒˆ์งธ๋กœ ์ž‘์€ ๊ฐ’ ๊ตฌํ•˜๊ธฐ

๋ฒ”์œ„: ์ •๋ ฌ ํ•œ ๊ฐ’์˜ ๋งˆ์ง€๋ง‰๊ฐ’ - ์ฒซ์žฌ๊ฐ’ ๋นผ๊ธฐ

 

๋‚˜์˜ ํ’€์ด

import sys
input = sys.stdin.readline
from collections import Counter

n = int(input())
ans=[]

num_list = [int(input()) for _ in range(n)]
ans.append(round(sum(num_list)/n))

num_list.sort()
ans.append(num_list[n//2])

cnt = Counter(num_list)
most = list(cnt.most_common(2))
if n==1:
    ans.append(most[0][0])
else:
    if most[0][1]==most[1][1]:
        ans.append(most[1][0])
    else:
        ans.append(most[0][0])
    
ans.append(num_list[-1]-num_list[0])

for i in ans:
    print(i)

์ฐจ๋ก€๋กœ ๊ตฌํ–ˆ๊ณ   ๋Ÿฐํƒ€์ž„์—๋Ÿฌ๊ฐ€ ์—ฌ๋Ÿฌ๋ฒˆ ๋‚ฌ๋‹ค.

 

 


    if most[0][1]==most[1][1]:
        ans.append(most[1][0])
    else:
        ans.append(most[0][0])

๋””๋ฒ„๊น…์„ ํ•˜๋ฉฐ ์ฐพ์€ ์˜ค๋ฅ˜๋Š”, ์ฒ˜์Œ์—” ์ตœ๋นˆ๊ฐ’ ์ฐพ๋Š” ์กฐ๊ฑด์„ ์ด๋ ‡๊ฒŒ๋งŒ ๊ฑธ์–ด์ค˜์„œ 

 n์„ 1๊ฐœ๋งŒ ์ž…๋ ฅํ–ˆ์„ ์‹œ์—๋Š” ๋น„๊ต ๋Œ€์ƒ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ์˜ค๋ฅ˜๊ฐ€ ๋‚˜๋Š” ๊ฒƒ์ด์—ˆ๋‹ค,

 

๊ทธ์™ธ ๋‹ค๋ฅธ ํ’€์ด๋ฅผ ์ฐพ์•„๋ณด๋‹ˆ ๋žญํฌ์ •๋ ฌ์„ ์ด์šฉํ•˜๋Š” ๊ฒƒ์„ ๋ฐœ๊ฒฌํ–ˆ๋‹ค.

 

๋‹ค๋ฅธํ’€์ด1 (๋ชจ๋“ˆ ์‚ฌ์šฉ X)

n = int(input())
num_list = [int(input()) for _ in range(n)]

ans=[]
a=[]
q = [0]*8001

for i in num_list:
    q[i+4000]+=1
    
qmax = max(q)

for i in range(8001):
    if q[i] == qmax:
        a.append(i-4000)

a.sort()

ans.append(round(sum(num_list)/n))
ans.append(sorted(num_list)[n//2])
if len(ans)==1:
    ans.append(a[0])
else:
    ans.append(a[1])
ans.append(max(num_list)-min(num_list))


for i in ans:
    print(i)

์ •์ˆ˜์˜ ์ ˆ๋Œ€๊ฐ’ <=4000์ด๋‹ˆ ๊ทธ ๊ฐœ์ˆ˜๋ฅผ 8001๊ฐœ์˜ 0๊ฐ’์„ ๊ฐ€์ง„ ๋ฐฐ์—ด์„ ๋งŒ๋“ค์–ด ๋†“๊ณ 

์ž…๋ ฅ๋˜๋Š” ๊ฐ’์˜ ์ธ๋ฑ์Šค๋ฅผ ๊ทธ ๋ฐฐ์—ด์˜ ๊ฐ’์œผ๋กœ ์‚ฌ์šฉํ•œ ๋‹ค์Œ

๊ทธ ์ธ๋ฑ์Šค๋ฅผ max ๋กœ ์ฐพ์•„๊ฐ€๋ฉฐ ์‚ฌ์šฉํ–ˆ๋‹ค.

 

 

 

๋‹ค๋ฅธํ’€์ด2 (๋ชจ๋“ˆ์‚ฌ์šฉ 0)

from statistics import multimode

frequent= freq[1] if len(freq) > 1 else freq[0]

multimode๋ผ๋Š” ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜๋ฉด 

freq๋ฅผ ํ†ตํ•ด ํ•œ๋ฒˆ์— ๋นˆ๋„์ˆ˜์™€ ๊ทธ ์ธ๋ฑ์Šค๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ์–‘์ด๋‹ค... 

์—ญ์‹œ ๋ฏธ์ง€์˜ ํŒŒ์ด์ฌ...

 

๐Ÿ’™  ํŒŒ์ด์ฌ์˜ ๋‘ ๋ชจ๋“ˆ  Counter , multimode-freq๋ฅผ ์•Œ์•„๋ƒˆ๋‹ค. ํŒŒ์ด์ฌ์˜ ๋ชจ๋“ˆ์„ ์–ด๋””๊นŒ์ง€ ์•Œ๊ณ  ์ ์žฌ์ ์†Œ์— ํ™œ์šฉํ•ด์•ผ ํ• ์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š”๊ฒƒ์€ ์ €์ ˆ๋กœ ์ตํ˜€์งˆ๊ฒƒ์ด๋ผ ์ƒ๊ฐํ•œ๋‹ค.!

๋Œ“๊ธ€