ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 25. 숫자 야구
    코딩 테스트/Level 2 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)
    반응형
Designed by Tistory.