For Programmer
백준 2578번 파이썬 문제풀이(빙고) 본문
728x90
이 문제는 단순한 노가다성 구현이다. 혹시 해당코드보다 더 편하게 푸는 법이 있다면 알려주길 바란다....
범위가 5밖에 안되기 때문에 무지성 중첩 반복문으로 빙고개수를 구했다.
chulsoo = [list(map(int, input().split())) for _ in range(5)]
MC = [list(map(int, input().split())) for _ in range(5)]
count = 0 # 사회자가 숫자를 부른 횟수를 세는 변수
# 빙고 개수 세기
def solution(array: list):
bingo_number = 0
# 가로가 빙고일때
for i in range(5):
if sum(array[i]) == 0:
bingo_number += 1
# 세로가 빙고일때
for i in range(5):
count_temp = 0
for j in range(5):
if array[j][i] == 0:
count_temp += 1
if count_temp == 5:
bingo_number += 1
# 대각선이 빙고일 때
temp_up = [] # 우하단 빙고
temp_down = [] # 우상단 빙고
for i in range(5):
temp_up.append(array[i][i])
temp_down.append(array[i][4 - i])
if sum(temp_up) == 0:
bingo_number += 1
if sum(temp_down) == 0:
bingo_number += 1
return bingo_number
for i in range(5):
for j in range(5):
for k in range(5):
for h in range(5): # 사회자가 부른 수를 비교하기위해 4번의 반복문을 돈다.
if MC[i][j] == chulsoo[k][h]: # 만약 해당 번호를 찾았다면
chulsoo[k][h] = 0 # 그 번호를 0으로 만들고
count += 1 # 부른횟수를 +1 해준다.
if count >= 12: # 만약 count 값이 12이상이라면(3빙고가 나오기 위한 최소한의 조건)
if solution(chulsoo) >= 3: # 빙고개수를 세어 3이상이라면
print(count) # 그 횟수를 출력하고
exit() # 코드종료한다.
728x90
'코팅테스트 > 백준 문제 모음' 카테고리의 다른 글
백준 2527번 파이썬 문제풀이(직사각형) (0) | 2022.01.30 |
---|---|
백준 2477번 파이썬 문제풀이(참외밭) (0) | 2022.01.28 |
백준 2559번 파이썬 문제풀이(수열) (0) | 2022.01.28 |
백준 2304번 파이썬 문제풀이(창고 다각형 - 스택) (0) | 2022.01.27 |
백준 2116번 파이썬 문제풀이(주사위 쌓기) (0) | 2022.01.27 |
Comments