์ต๋น๊ฐ ๊ตฌํ๊ธฐ
Q. ์ต๋น๊ฐ์ ์ฃผ์ด์ง ๊ฐ ์ค์์ ๊ฐ์ฅ ์์ฃผ ๋์ค๋ ๊ฐ์ ์๋ฏธํฉ๋๋ค. ์ ์ ๋ฐฐ์ด `array` ๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋,
์ต๋น๊ฐ์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด๋ณด์ธ์. ์ต๋น๊ฐ์ด ์ฌ๋ฌ ๊ฐ๋ฉด -1์ return ํฉ๋๋ค.
A.
from collections import Counter # ์ปฌ๋ ์
๋ชจ๋์ ์นด์ดํฐ ํจ์๋ฅผ ์ฌ์ฉํ์์ต๋๋ค.
def solution(array): # ์ธ์๋ฅผ array๋ก ๋ฐ๋ solution ํจ์ ํธ์ถ
# Counter ํจ์๋ ๋ฆฌ์คํธ์ ์์(key:array)๊ฐ ๋ช ๋ฒ ๋์ค๋์ง(value)๋ฅผ dict ํํ๋ก ์ ์ฅ ๋ฐ์ต๋๋ค.
array_count = Counter(array) # array_count ๋ณ์์ Counter(array)๋ฅผ ํ ๋นํฉ๋๋ค.
max_count = max(array_count.values()) # max_count์ ์ต๋น๊ฐ(์ถํํ์์ max๊ฐ)์ ํ ๋นํด์ค๋๋ค.
# mode ๋ณ์์ ๋ฆฌ์คํธ ์ปดํ๋ฆฌํจ์
์ ์ฌ์ฉํด์ ์ต๋น๊ฐ์ ํ ๋นํด์ค๋๋ค.
mode = [k for k, v in array_count.items() if v == max_count]
# ๋ฆฌ์คํธ ์ปดํ๋ฆฌํจ์
์ ์์ผ์ ๊ฒฝ์ฐ:
# mode = []
# for k, v in array_count.items():
# if v == max_count:
# mode.append(k)
if len(mode) > 1: # mode์ ๊ธธ์ด๊ฐ 1๋ณด๋ค ํฌ๋ค๋ฉด
return -1 # -1์ ๋ฐํ
else: # ๊ทธ๊ฒ ์๋๋ผ๋ฉด
return mode[0] # mode์ ์ฒซ๋ฒ์งธ ๋ฐ์ดํฐ๋ฅผ ํธ์ถํฉ๋๋ค.
์กฐ์๋ค ์ฝ๋ ํ๋ฝ๋งก๊ณ ์ฌ๋ฆฝ๋๋ค:->
# ์ฉ์๋ ์ฝ๋
def solution(array):
# ๊ฐ ์ซ์์ ์ถํ ํ์๋ฅผ ์ ์ฅํ ๋์
๋๋ฆฌ ์ด๊ธฐํ
counts = {}
# ๋ฐฐ์ด์ ๊ณ ์ ํ ๊ฐ๋ค์ ๋ํด ๋ฐ๋ณต
for i in set(array):
# ๊ฐ ์ซ์์ ์ถํ ํ์๋ฅผ ๊ณ์ฐํ์ฌ counts ๋์
๋๋ฆฌ์ ์ ์ฅ
counts[i] = array.count(i)
# ๊ฐ์ฅ ๋์ ์ถํ ํ์๋ฅผ ์ฐพ์
max_count = max(counts.values())
# ๊ฐ์ฅ ๋์ ์ถํ ํ์๋ฅผ ๊ฐ์ง ์ซ์๋ค์ ๋ฆฌ์คํธ๋ก ์ ์ฅ
modes = [key for key, value in counts.items() if value == max_count]
# ์ต๋น๊ฐ์ด ์ฌ๋ฌ ๊ฐ์ผ ๊ฒฝ์ฐ -1์ ๋ฐํ
if len(modes) > 1:
return -1
else:
# ์ต๋น๊ฐ์ด ํ๋์ผ ๊ฒฝ์ฐ ๊ทธ ๊ฐ์ ๋ฐํ
return modes[0]
# ์ธํฌ๋ ์ฝ๋
# ๋ฐฉ๋ฒ 1: Counter ๋ชจ๋
from collections import Counter
def solution(array):
counts = Counter(array)
max_count = max(counts.values())
frequent = [key for key, value in counts.items() if value == max_count]
return frequent[0] if len(frequent) == 1 else -1 # ํ๋ณด๊ฐ ํ๋๋ฉด ๋ฐํ, ์ฌ๋ฌ ๊ฐ๋ฉด -1
# ๋ฐฉ๋ฒ 2: ๋ด์ฅ ๋ชจ๋ ์ฐ์ง ์์ ๊ฒฝ์ฐ. for๋ฌธ ๋ด๋ถ .count๋ก ์ธํด ์๊ฐ ๋ณต์ก๋๊ฐ O(n^2)
def solution(array):
max_count = 0
for i in set(array):
if array.count(i) > max_count:
max_count = array.count(i)
answer = i
elif array.count(i) == max_count:
answer = -1
return answer
# ์ ์๋ ์ฝ๋
def solution(array):
num = 0 # ๋ง์ด ๋ํ๋ ์์ด ๋๋ฅ์ฅ ํ์
data = 0 # ์ต๋น๊ฐ
for i in set(array):
if array.count(i) > num:
num = array.count(i)
data = i
elif array.count(i) == num:
data = -1
return data
์์ฃผ๋์ ์ฝ๋๊ฐ ์์ด์ ์๋ต ใ ใ กใ
์ ๋ฐํ๋ ํ๋ก๊ทธ๋๋จธ์ค ํ์ธ์ ๋ฌธํ:
def solution(array):
while len(array) != 0:
for i, a in enumerate(set(array)):
array.remove(a)
if i == 0: return a
return -1
def solution(array):
answer = 0
ss = set(array)
temp = []
dic = {}
for s in ss:
dic[s] = array.count(s)
data = list(sorted(dic.items(), key=lambda x: -x[1]))
if len(data) == 1:
return data[0][0]
if data[0][1] == data[1][1]:
return -1
return data[0][0]
์ฝ์ง์๋ค,,,,,,,,
'[๋ด๋ฐฐ์บ ] ๋ณธ ์บ ํ (24.11.25 ~ 25.03.01)๐๐ปโโ๏ธโ > ๋ฌธ์ ํ์ด๐ฏ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[241220] ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉํ ์คํธ ์ฝ๋ฉ ๊ธฐ์ด ํธ๋ ์ด๋ ๋ฌธ์ (1) | 2024.12.20 |
---|---|
[241217] ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉํ ์คํธ ์ ๋ฌธ ๋ฌธ์ (0) | 2024.12.17 |
[241212] ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉํ ์คํธ ์ ๋ฌธ ๋ฌธ์ (2) | 2024.12.12 |
[241211] ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉํ ์คํธ ์ ๋ฌธ ๋ฌธ์ (1) | 2024.12.11 |
[241210] ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉํ ์คํธ ์ ๋ฌธ ๋ฌธ์ (5) | 2024.12.10 |