현대 모비스 경진대회 “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개의 테스트 케이스가 실패하였습니다.
실패한 테스트 케이스를 찾으면 업데이트 예정입니다.