본문 바로가기
🔅코딩테스트 공부🔅/❗백준

[백준] 2490번 윷놀이(with python)

by 윤무무 2023. 1. 11.

https://www.acmicpc.net/problem/2490

 

2490번: 윷놀이

우리나라 고유의 윷놀이는 네 개의 윷짝을 던져서 배(0)와 등(1)이 나오는 숫자를 세어 도, 개, 걸, 윷, 모를 결정한다. 네 개 윷짝을 던져서 나온 각 윷짝의 배 혹은 등 정보가 주어질 때 도(배 한

www.acmicpc.net

1. 내가 작성한 코드
for i in range (4):
  arr[i] = list(map(int, input().split()))

for i in range (3):
  x,y = 0,0
  for j in range (4):
    if arr[i][j] == 0 :
      x = x + 1
    else :
      y = y + 1
  if x == 1 and y == 3 : print('A')
  elif x == 2 and y == 2 : print('B')
  elif x == 3 and y == 1 : print('C')
  elif x == 4 and y == 0 : print('D')
  else : print('E')

 

'입력 -> 출력 -> 입력 -> 출력'과 같이 입력과 출력이 교차되는 형태도 맞게 채점되는 지 알지 못해서,,

입력 입력 입력 -> 출력 출력 출력 과 같은 형식으로 만들기 위해 노력했다.

arr 리스트가 제대로 정의되지 않아 런타임 오류가 발생했고 ㅠㅠ 한참을 고민했지만 어떻게 해결해야하는지 알지 못해서 구글링..

 

2. 모범답안
for i in range(3):
    a = list(map(int, input().split()))
    if a.count(0) == 1:
        print("A")
    elif a.count(0) == 2:
        print("B")
    elif a.count(0) == 3:
        print("C")   
    elif a.count(0) == 4:
        print("D")
    else:
        print("E")

 

알게 된 점

  • 어차피 a 리스트는 반복문을 거치며 재정의 되기 때문에  굳~이 리스트를 3개 만들 필요가 없다.
  • (1,3) (2,2)와 같이 튜플의 형태로 조건식을 만들 필요 없이, 0이나 1의 수로 세우면 된다.
  • 입력과 출력은 교차되어도 상관없다 (생각해보면 당연함)
  • count() 함수를 이용해 list에 있는 원소의 수를 셀 수 있다.

댓글