코딩 테스트/Level 2
25. 숫자 야구
컴닥
2020. 8. 8. 21:27
반응형
https://programmers.co.kr/learn/courses/30/lessons/42841
완전탐색
4116명 완료
완전탐색이니까 모든 경우의 수를 찾아 (=노가다) 풀면 끝.
완전탐색문제라 난이도가 높지 않습니다.
코딩테스트 연습 - 숫자 야구
[[123, 1, 1], [356, 1, 0], [327, 2, 0], [489, 0, 1]] 2
programmers.co.kr
import itertools
def solution(nums):
answer_set = set()
for num, s, b in nums:
temp_set = set()
num = list(map(int, str(num))) # num = [int(each) for each in str(num)]
for i, j, k in itertools.permutations(range(1, 10), 3):
ss, bb = 0, 0
if i == num[0]:
ss += 1
elif i in num:
bb += 1
if j == num[1]:
ss += 1
elif j in num:
bb += 1
if k == num[2]:
ss += 1
elif k in num:
bb += 1
if ss == s and bb == b:
temp_set.add((i, j, k))
if answer_set:
answer_set &= temp_set
else:
answer_set = temp_set
return len(answer_set)
테스트 1 〉 통과 (0.98ms, 10.9MB)
테스트 2 〉 통과 (0.91ms, 10.8MB)
테스트 3 〉 통과 (0.53ms, 10.9MB)
테스트 4 〉 통과 (1.34ms, 10.9MB)
테스트 5 〉 통과 (0.68ms, 10.8MB)
테스트 6 〉 통과 (0.33ms, 11MB)
테스트 7 〉 통과 (0.42ms, 10.9MB)
테스트 8 〉 통과 (1.05ms, 10.9MB)
테스트 9 〉 통과 (2.08ms, 10.9MB)
테스트 10 〉 통과 (0.24ms, 10.9MB)
반응형