[2023-02-21 ๐Ÿ‘Š TIL]

Burkeyยท2023๋…„ 2์›” 21์ผ
0

TIL

๋ชฉ๋ก ๋ณด๊ธฐ
38/157

๋ฐฑ์ค€ 2108๋ฒˆ

import sys
input = sys.stdin.readline

N = int(input())
ave = 0  # ์‚ฐ์ˆ ํ‰๊ท 
nums = []
numDic = {}  # ์ตœ๋นˆ๊ฐ’ํ•  ๋”•์…”๋„ˆ๋ฆฌ

for _ in range(N):
    num = int(input())
    nums.append(num)
    ave = ave + num
    # input๊ฐ’์˜ ๋นˆ๋„์ˆ˜ ์„ค์ •
    if num not in numDic:  # ๊ฐฏ์ˆ˜ ์„ธ๋Š” ๋”•์…”๋„ˆ๋ฆฌ
        numDic[num] = 1
    else:
        numDic[num] = numDic[num] + 1

sorted_dict = sorted(
    numDic.items(), key=lambda item: (item[1], item[0]), reverse=True)  
    # ๋นˆ๋„์ˆ˜(value)๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌํ•œ๋’ค์— ๊ฐ’์˜ ํฌ๊ธฐ(key)๋กœ ์ •๋žผ 
    # ex) {-8:2, 1:2 ,-7:2, 3:3} ์ผ๋•Œ -> [(3,3),(1,2),(-7,2),(-8,2)]
    
most_counting_numVal = sorted_dict[0][1]  # ๊ฐ€์žฅ ๋งŽ์€ ๋นˆ๋„์ˆ˜ ๊ฐ’์˜ Val
most_counting_numKey = sorted_dict[0][0]  # ๊ฐ€์žฅ ๋งŽ์€ ๋นˆ๋„์ˆ˜ ๊ฐ’์˜ key๋ฅผ ๋ฝ‘์Œ

if N > 1:
    # ๋™์ผํ•œ ๋นˆ๋„์ˆ˜๊ฐ€ 1๊ฐœ ์ด์ƒ ์ผ ๋•Œ
    if most_counting_numVal == sorted_dict[1][1]: 
        test = [sorted_dict[0][0]] 
        for i in range(1, len(sorted_dict)):
            if sorted_dict[i-1][1] == sorted_dict[i][1]:
                test.append(sorted_dict[i][0])
            else:
                break
                
        # ๋™์ผํ•œ ๋นˆ๋„์ˆ˜์˜ ๊ฐ’๋“ค์ด ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋Ÿฌ ๋“ค์–ด๊ฐ„ ๋ฐฐ์—ด์ด ๋งŒ๋“ค์–ด์ง„๋‹ค.
        most_counting_numKey = sorted(test)[1]
        # ๋‘๋ฒˆ์งธ๋กœ ํฐ ๊ฐ’์„ ์ถ”์ถœ

nums.sort()  # ์ˆซ์ž ์ •๋ ฌ

# key๊ฐ’์ด ์ •๋ น๋œ ๋”•์…”๋„ˆ๋ฆฌ ์ถ”์ถœ value๋Š” ์ •๋ ฌ ์•ˆ๋จ

ave = ave / N
middleVal = nums[(N-1) // 2]
min = nums[0]
max = nums[N - 1]
rng = 0  # ๋ฒ”์œ„

if min != max: #๋ฒ”์œ„๊ฐ€ ์—†์„ ๋•Œ
    rng = max - min

rng = abs(rng)  # -๊ฐ’์ด ์žˆ์„ ์ˆ˜๋„ ์žˆ์œผ๋‹ˆ ์ ˆ๋Œ“๊ฐ’

print(round(ave))  # ์‚ฐ์ˆ ํ‰๊ท  ์†Œ์ˆ˜ ์ฒซ์งธ์—์„œ ๋ฐ˜์˜ฌ๋ฆผ
print(middleVal)  # ์ค‘์•™ ๊ฐ’
print(most_counting_numKey)  # ์ตœ๋นˆ๊ฐ’
print(rng)  # ๋ฒ”์œ„

์ตœ๋นˆ๊ฐ’์„ ๊ตฌํ•˜๋Š” ๊ฒƒ์ด ๋จธ๋ฆฌ ์•„ํŒ ์ง€๋งŒ
sorted()๋กœ ๋”•์…”๋„ˆ๋ฆฌ์˜ key์™€ value๊ฐ’์— ๋™์‹œ์— ์ •๋ ฌ์„ ์ค„ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์— ๋„์›€๋ฐ›์•„ ํ’€ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

profile
์Šคํƒฏ ์˜ฌ๋ฆฌ๋Š” ์ค‘

0๊ฐœ์˜ ๋Œ“๊ธ€