현대 모비스 경진대회 “1번” 문제를 풀어보았습니다.

혹시 해당 포스팅이 저작권상 문제가 되는 경우 이메일로 연락을 주시면 조치하도록 하겠습니다.

이메일 - jano.jeon@gmail.com


Solution

문제를 유출하지 말라는 조건이 있었기 때문에 문제는 생략하고 본인의 문제에 대한 이해 부분과 코드만 작성했습니다.

[문제 이해]

  • dice 데이터를 가지고 순열 데이터 생성
  • 비교 방식을 set() - set() 형태로 진행
  • 순열 데이터 중에 만들어지지 않은 가장 작은 데이터 반환

이해한 내용을 바탕으로 코드를 작성했습니다.

[답안 제출 코드]

from itertools import permutations

def solution(dice):
    temp = []
    for i in dice:
        temp += set(i)
    
    data = []
    for n in range(1, len(dice)+1):
        data += [int(''.join(map(str, i))) for i in list(permutations(temp, n))]
    data = list(set(data))
    check_data = list(range(data[0], data[-1]+1))
    answer = sorted(set(check_data) - set(data))
    if answer[0] == 0:
        return answer[1]
    else:
        return answer[0]

완성인 줄 알았지만, 코드 실행 시 1개의 테스트 케이스가 실패하였습니다.

실패한 테스트 케이스를 찾으면 업데이트 예정입니다.