BAEKJOON #1337 올바른 배열
2020. 3. 23. 21:24ㆍ개발노트
이 문제의 저작권은 BAEKJOON에 있습니다.
https://www.acmicpc.net/problem/1337
문제는 위 링크에서 확인할 수 있습니다.
#올바른 배열
#https://www.acmicpc.net/problem/1337
N = int(input())
arr = [int(input()) for _ in range(N)]
arr = sorted(arr)
temp = []
for i in range(0, N):
cnt = 0
for j in range(arr[i], arr[i]+5):
if j not in arr:
cnt += 1
temp.append(cnt)
print(min(temp))
어렵게 접근했다가 푸는데 시간이 좀 걸렸는데..
문제에 있는 그대로 숫자 5개가 순서대로 있는지 확인하면 되는 문제입니다.
주어진 숫자들을 배열에 넣고 정렬합니다.
그리고 순서대로 배열의 요소를 선택하고 그 요소부터 순서대로 5개의 요소가 이어져있는지 확인하면 됩니다.
예를 들면 배열[3, 4, 5] 가 주어졌을 때
선택된 요소가 3일 때 | for문 3, 4, 5, 6, 7 | 배열에 없는 나머지 6, 7 |
선택된 요소가 4일 때 | for문 4, 5, 6, 7, 8 | 배열에 없는 나머지 6, 7, 8 |
선택된 요소가 5일 때 | for문 5, 6, 7, 8, 9 | 배열에 없는 나머지 6, 7, 8, 9 |
나머지 개수들을 temp배열에 넣고 가장 작은 것을 찾아서 답을 구했습니다.