[λ°±μ€] 12760 μ΅νμ μΉμλ λꡬ? with Python
π BOJ 12760 μ΅νμ μΉμλ λꡬ?
π‘ 쑰건
μ΅μ’ νλ μ΄μ΄ Nλͺ μ΄ λ¨μμλ€. κ° νλ μ΄μ΄λ Mμ₯μ©μ μ«μκ° μ ν μΉ΄λλ₯Ό κ°μ§κ³ μμΌλ©°,
μ΄λ€μ λ§€ ν΄ μμ μ΄ κ°μ§ μΉ΄λ μ€ κ°μ₯ ν° μΉ΄λλ₯Ό λκ³ λΉκ΅λ₯Ό νλλ°, κ·Έ μΉ΄λλ€ μ€ κ°μ₯ ν° μλ₯Ό κ°μ§ νλ μ΄μ΄κ° 1μ μ νλνλ€.κ·Έ ν΄μ μ¬μ©λ μΉ΄λλ λ²λ¦¬κΈ°λ‘ νλ€. (κ°μ₯ ν° μλ₯Ό κ°μ§ νλ μ΄μ΄λ μ¬λ¬ λͺ μΌ μ μλ€.)
3.βMλ²μ κ²½κΈ° ν κ°μ₯ λ§μ μ μλ₯Ό νλν νλ μ΄μ΄λ λͺ λ² νλ μ΄μ΄μΈμ§ ꡬνλ λ¬Έμ .
2 <= N <= 100, 1 <= M <= 100
1 <= μΉ΄λμ μ ν μ«μ <= 100κ°μ₯ λ§μ μ μλ₯Ό νλν νλ μ΄μ΄κ° μ¬λ¬ λͺ μΌ κ²½μ°, λΉμΉΈμ μ¬μ΄μ λκ³ νλ μ΄μ΄λ€μ λ²νΈλ₯Ό μ€λ¦μ°¨μμΌλ‘ μΆλ ₯νλ€.
μ λ ¬ μ νμ λ¬Έμ
π₯ μμ€ μ½λ
from sys import stdin
n, m = map(int, stdin.readline().split())
d = {x: 0 for x in range(1, n + 1)}
players = []
for i in range(n):
cards = list(map(int, stdin.readline().split()))
cards.sort()
players.append(list(reversed(cards)))
mx = [0 for _ in range(m)]
for i in range(n):
for j in range(m):
mx[j] = max(mx[j], players[i][j])
for i in range(n):
for j in range(m):
if mx[j] == players[i][j]:
d[i + 1] += 1
mx_cnt = max(d.values())
res = []
for key, item in d.items():
if item == mx_cnt:
res.append(key)
res.sort()
print(*res)
π μμ λ° μ€νκ²°κ³Ό
μμ
5 3
5 4 3
3 4 5
3 5 4
4 5 3
3 4 4
μ€νκ²°κ³Ό
1 2 3 4
β¨οΈ λ¬Έμ νμ΄
d λ³μλ dictionary μ΄λ©°, κ° νλ μ΄μ΄μ μ μλ₯Ό μ μ₯ν λ³μμ΄λ€.
N λͺ μ νλ μ΄μ΄κ° κ°μ λ€κ³ μλ μΉ΄λμ μ«μλ€μ΄ μ λ ₯λ λ, κ·Έ μ«μλ€μ λ΄λ¦Όμ°¨μμΌλ‘ μ λ ¬νμ¬ playersμ λ£μ΄μ€λ€.
κ° νλ μ΄μ΄μ μΉ΄λλ₯Ό μννλ©΄μ κ°μ₯ ν° μΉ΄λ κ°μ μ μ₯νλ€.
κ° νλ μ΄μ΄μ μΉ΄λλ₯Ό μννλ©΄μ mx[j] κ° i λ² νλ μ΄μ΄μ[j]λ²μ§Έ μΉ΄λμ κ°μ΄ κ°λ€λ©΄, d[i + 1] μ + 1μ ν΄μ€λ€.
d μ μ μ₯λ κ° μ€, κ°μ₯ ν° κ°μ 골λΌλΈ λ€, mx_cnt μ μ μ₯νλ€.
dλ₯Ό μννλ©΄μ mx_cnt μ κ°μ κ°μ κ°μ§ ν€λ₯Ό resμ μ μ₯ν΄μ€λ€.
resλ₯Ό μΆλ ₯ν λ, μ€λ¦μ°¨μ μ λ ¬μ ν λ² μνν΄μ€ λ€ μΆλ ₯νλ€.
πΎ λλμ
- κ°λ¨νκ² ν μ μμλ μ λ ¬ λ¬Έμ μμ΅λλ€.
- μΉ΄λμ μ«μλ₯Ό ν° μμλλ‘ λ³΄μμΌνλ κ²μ λ μ¬λ¦¬μ§ λͺ»ν΄ μ‘°κΈ ν€λ§Έμ΅λλ€.