사용 언어 - Python3
문제 - 2503번 숫자 야구
정답
단순구현 (정답 맞춘 여부 X)
1. abc 세 숫자를 모두 만들어준다. abc는 겹치지 말아야하며, 1부터 시작한다
2. 스트라이크와 볼 수 확인해준다.
abc와 입력받은 숫자의 위치가 같다면 스트라이크 += 1
위치는 다르지만, abc 안에 있다면 볼 += 1
3. 볼과 스트라이크 수가 입력받은 수와 같다면 counter +=1 하나 성공!
4. counter가 n과 같아지면, 모든 조건을 충족한 것이므로 개수 추가! answer += 1
n = int(input())
numbers = [list(map(str,input().split())) for _ in range(n)]
answer = 0
for a in range(1,10): # 100의 자리수
for b in range(1,10): # 10의 자리수
for c in range(1,10): # 1의 자리수
counter = 0
if( a == b or b == c or c == a):
continue
for array in numbers:
check = list(array[0])
strike = int(array[1])
ball = int(array[2])
strike_count = 0
ball_count = 0
if (a == int(check[0])):
strike_count += 1
if (b == int(check[1])):
strike_count += 1
if (c == int(check[2])):
strike_count += 1
if (a == int(check[1]) or a == int(check[2])):
ball_count += 1
if (b == int(check[0]) or b == int(check[2])):
ball_count += 1
if (c == int(check[0]) or c == int(check[1])):
ball_count += 1
if (strike != strike_count):
break
if (ball != ball_count):
break
counter += 1
if counter == n:
answer += 1
print(answer)
레퍼런스
- 정답 깃허브
'Algorithm > 완전탐색' 카테고리의 다른 글
[백준] 1090번 체커 (0) | 2023.09.10 |
---|---|
[백준] 19532번 수학은 비대면강의입니다 (0) | 2023.09.10 |
[백준] 14568번 2017 연세대학교 프로그래밍 경시대회 (0) | 2023.09.10 |
[백준] 1816번 암호 키 (0) | 2023.09.10 |
[프로그래머스 lv1] 대충 만든 자판 (0) | 2023.04.24 |
댓글