본문 바로가기
  • 초부득3 - 어제보다 나은 내일을 위해
  • 꿈이 현실이 되는 날까지
sw사관학교 정글 2기/01 기초,재귀,완전탐색, 정렬

[완전탐색] 백준 2503번 숫자야구 with Python3

by 금의야행 2021. 8. 13.

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

 

2503번: 숫자 야구

첫째 줄에는 민혁이가 영수에게 몇 번이나 질문을 했는지를 나타내는 1 이상 100 이하의 자연수 N이 주어진다. 이어지는 N개의 줄에는 각 줄마다 민혁이가 질문한 세 자리 수와 영수가 답한 스트

www.acmicpc.net

문제

 

내 풀이

import sys

해설

 

 

정답 풀이

import sys

def game(x,s,b):
    for i in range(123,1000):
        if not arr[i]: continue
        ss=0
        bb=0
        temp=str(i)
        for j in range(3):
            for k in range(3):
                if x[j]==temp[k]:
                    if j==k: ss+=1
                    else: bb+=1
        if not(ss==s and bb==b):
            arr[i]=False
    return 0

arr=[True]*1000
for i in range(123,1000):
    temp=str(i)
    if temp[0]==temp[1] or temp[1]==temp[2] or temp[2]==temp[0]:
        arr[i]=False
    if temp[0]=='0' or temp[1]=='0' or temp[2]=='0':
        arr[i]=False

n=int(sys.stdin.readline())
for i in range(n):
    num,strike,ball=map(int,sys.stdin.readline().split())
    game(str(num),strike,ball)

cnt=0
for i in range(123,1000):
    if arr[i]: cnt+=1

print(cnt)

출처: sw 사관학교 정글

 

해석

해석 예정

댓글