• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

[2-9. 주사위 게임] 풀이 좀 봐주세요

21.12.11 21:31 작성 조회수 81

0

import sys

sys.stdin = open('2_9.txt', 'rt')

def findDupValue(value):
  n_counter = {}
  for n in value:
    if n not in n_counter : n_counter[n] = 1
    else : n_counter[n] += 1
    
    if n_counter[n] == 2: return n

N = int(input())
dice = []
cnt_dice = []
prize = []

for i in range(N):
  dice.append(list(map(int, input().split())))
  cnt_dice.append(len(set(dice[i])))

for value, cnt in zip(dice, cnt_dice):
  if cnt == 1 : prize.append(10000 + (value[0]) * 1000)
  elif cnt == 2 : prize.append(1000 + (findDupValue(value)) * 100)
  else : prize.append(max(value) * 100)
  
print(max(prize))

 

for문을 2개 쓴게 걸리는데 이런 코드는 어떤가요?

입력받을 때 주사위 값을 묶어서 배열로 저장하는 dice 리스트와

set으로 받아서 길이를 저장하는 cnt_dice 리스트를 사용했고

cnt 리스트가 2이면 findDupValue 함수에서 dictionary를 사용해서 다시 카운팅해 중복되는 숫자를 찾아 계산하는 코드입니다.

답변 1

답변을 작성해보세요.

0

안녕하세요^^

잘 하신 코드입니다.