μ£Όμ‚¬μœ„ κ²Œμž„

πŸ“„ 문제

1μ—μ„œλΆ€ν„° 6κΉŒμ§€μ˜ λˆˆμ„ κ°€μ§„ 3개의 μ£Όμ‚¬μœ„λ₯Ό λ˜μ Έμ„œ λ‹€μŒκ³Ό 같은 κ·œμΉ™μ— 따라 μƒκΈˆμ„ λ°›λŠ” κ²Œμž„μ΄ μžˆλ‹€.

κ·œμΉ™(1) 같은 눈이 3κ°œκ°€ λ‚˜μ˜€λ©΄ 10,000원+(같은 눈)*1,000μ›μ˜ μƒκΈˆμ„ λ°›κ²Œ λœλ‹€.
κ·œμΉ™(2) 같은 눈이 2개만 λ‚˜μ˜€λŠ” κ²½μš°μ—λŠ” 1,000원+(같은 눈)*100μ›μ˜ μƒκΈˆμ„ λ°›κ²Œ λœλ‹€.
κ·œμΉ™(3) λͺ¨λ‘ λ‹€λ₯Έ 눈이 λ‚˜μ˜€λŠ” κ²½μš°μ—λŠ” (κ·Έ 쀑 κ°€μž₯ 큰 눈)*100μ›μ˜ μƒκΈˆμ„ λ°›κ²Œ λœλ‹€.

예λ₯Ό λ“€μ–΄, 3개의 눈 3, 3, 6이 μ£Όμ–΄μ§€λ©΄ μƒκΈˆμ€ 1,000+3*100으둜 κ³„μ‚°λ˜μ–΄ 1,300원을 λ°›κ²Œ λœλ‹€.
또 3개의 눈이 2, 2, 2둜 μ£Όμ–΄μ§€λ©΄ 10,000+2*1,000 으둜 κ³„μ‚°λ˜μ–΄ 12,000원을 λ°›κ²Œ λœλ‹€.
3개의 눈이 6, 2, 5둜 μ£Όμ–΄μ§€λ©΄ κ·Έ 쀑 κ°€μž₯ 큰 값이 6μ΄λ―€λ‘œ 6*100으둜 κ³„μ‚°λ˜μ–΄ 600원을 μƒκΈˆ 으둜 λ°›κ²Œ λœλ‹€.

N λͺ…이 μ£Όμ‚¬μœ„ κ²Œμž„μ— μ°Έμ—¬ν•˜μ˜€μ„ λ•Œ, κ°€μž₯ λ§Žμ€ μƒκΈˆμ„ 받은 μ‚¬λžŒμ˜ μƒκΈˆμ„ 좜λ ₯ν•˜λŠ” ν”„λ‘œκ·Έλž¨ 을 μž‘μ„±ν•˜μ‹œμ˜€

β–£ μž…λ ₯μ„€λͺ…
첫째 μ€„μ—λŠ” μ°Έμ—¬ν•˜λŠ” μ‚¬λžŒ 수 N(2<=N<=1,000)이 μ£Όμ–΄μ§€κ³ 
κ·Έ λ‹€μŒ 쀄뢀터 N개의 쀄에 μ‚¬λžŒ 듀이 μ£Όμ‚¬μœ„λ₯Ό λ˜μ§„ 3개의 눈이 λΉˆμΉΈμ„ 사이에 두고 각각 μ£Όμ–΄μ§„λ‹€.

β–£ 좜λ ₯μ„€λͺ…
첫째 쀄에 κ°€μž₯ λ§Žμ€ μƒκΈˆμ„ 받은 μ‚¬λžŒμ˜ μƒκΈˆμ„ 좜λ ₯ν•œλ‹€.

β–£ μž…λ ₯예제
3
3 3 6
2 2 2
6 2 5

β–£ 좜λ ₯예제
12000

🧞 풀이

더보기

풀이

# μž…λ ₯ : 첫째 쀄 - μ°Έμ—¬ν•˜λŠ” μ‚¬λžŒ 수 n = test case 갯수
# μž…λ ₯ : λ‹€μŒ 쀄 - n개의 쀄에 μ‚¬λžŒλ“€μ΄ λ˜μ§„ μ£Όμ‚¬μœ„ 3개의 눈
# 좜λ ₯ : κ°€μž₯ λ§Žμ€ μƒκΈˆμ„ 받은 μ‚¬λžŒμ˜ μƒκΈˆμ„ 좜λ ₯

n = int(input())                            # μ •μˆ˜ n ν• λ‹Ή
m = []                                      # 빈 리슀트 m ν• λ‹Ή

for i in range(n):                          # n만큼 반볡
    d = list(map(int, input().split()))     # d에 각 눈 μž…λ ₯ν•˜μ—¬ ν• λ‹Ή
    if d.count(d[0]) == 3:                  # d[0]의 κ°―μˆ˜κ°€ 3이면 = λͺ¨λ“  눈이 κ°™μœΌλ©΄
        m.append(int(10000 + d[0] * 1000))  # κ·œμΉ™ 1둜 κ³„μ‚°ν•œ μƒκΈˆ m에 μΆ”κ°€
    elif d.count(d[0]) == 2:                # d[0]의 κ°―μˆ˜κ°€ 2이면 = 첫번째 눈과 λ‘λ²ˆμ§Έ ν˜Ήμ€ μ„Έλ²ˆμ§Έ 눈이 κ°™μœΌλ©΄
        m.append(int(1000 + d[0] * 100))    # κ·œμΉ™ 2둜 κ³„μ‚°ν•œ μƒκΈˆ m에 μΆ”κ°€
    elif d.count(d[1]) == 2:                # d[1]의 κ°―μˆ˜κ°€ 2이면 = λ‘λ²ˆμ§Έ 눈과 μ„Έλ²ˆμ§Έ 눈이 κ°™μœΌλ©΄
        m.append(int(1000 + d[1] * 100))    # κ·œμΉ™ 2둜 κ³„μ‚°ν•œ μƒκΈˆ m에 μΆ”κ°€
    else:                                   # μ„Έ μ£Όμ‚¬μœ„μ˜ 눈이 λͺ¨λ‘ λ‹€λ₯΄λ©΄
        m.append(int(max(d) * 100))         # κ·œμΉ™ 3으둜 κ³„μ‚°ν•œ μƒκΈˆ m에 μΆ”κ°€


print(max(m))                               # m에 μΆ”κ°€λœ μƒκΈˆμ˜ μ΅œλŒ“κ°’ 좜λ ₯

 

λ‹€λ₯Έ μ‚¬λžŒν’€μ΄

# μ£Όμ‚¬μœ„ κ²Œμž„

n = int(input())
res = 0
for i in range(n):
    tmp = input().split() # λ„μ›Œμ“°κΈ° 기쀀에 λ§žμΆ°μ„œ λ¦¬μŠ€νŠΈμ— μš”μ†Œ μΆ”κ°€
    tmp.sort() # μ˜€λ¦„μ°¨μˆœ μ •λ ¬
    a, b, c = map(int, tmp) # ν•΄λ‹Ή κ°’λ“€ μ •μˆ˜λ‘œ λ³€ν™˜
    if a == b and b == c: # a, b, c λͺ¨λ‘ 같을 λ•Œ,
        money = 10000 + a * 1000
    elif a == b or a== c: # a와 b ν˜Ήμ€ a와 cκ°€ 같을 λ•Œ,
        money = 1000 + (a * 100)
    elif b == c: # b와 cκ°€ 같을 λ•Œ,
        money = 1000 + (b * 100)
    else: # 이 밖에, μ„œλ‘œ λͺ¨λ‘ λ‹€λ₯Ό λ•Œ
        money = c * 100 # μ˜€λ¦„μ°¨μˆœ μ •λ ¬ν•΄μ„œ, κ°€μž₯ 높은 값은 cμž„
    if money > res: # ν•΄λ‹Ή 값이 λ‹€λ₯Έ 값듀보닀 클 λ•Œ, res에 ν• λ‹Ήν•΄μ„œ 찾음
        res = money
print(res)

+ Recent posts