https://www.acmicpc.net/problem/1337
1337번: 올바른 배열
첫째 줄에 배열의 크기 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 배열의 원소가 한 줄에 하나씩 주어진다. 원소는 1,000,000,000보다 작거나 같은 음이 아닌 정수이
www.acmicpc.net
코드
import sys
n = int(sys.stdin.readline().rstrip())
arr = []
for i in range(n):
arr.append(int(sys.stdin.readline().rstrip()))
arr.sort()
ans = 4
for i in range(n):
temp = 0
for j in range(arr[i], arr[i] + 5):
if j not in arr:
temp += 1
if ans > temp:
ans = temp
print(ans)
arr를 정렬한 후에 arr[i]에서 arr[i]+5 까지의 수가 arr에 모두 들어있는지 확인하고 없다면 temp에 1씩 더해줍니다. 후에 4가 저장 되어있는 ans와 비교하여 더 작은 값을 출력합니다.
후기
처음에는 이중for문 j의 범위를 i+1에서 n까지 줘서 arr[i]와 arr[j] 값을 비교하는 방식을 이용했는데 성공이 안 나오더라고요. 그래서 구글링 해서 더 쉬운 방법을 배웠습니다.
'코딩테스트' 카테고리의 다른 글
[Python, Java] 백준 3212번 - '피자' 풀이 (1) | 2023.01.23 |
---|---|
[Python] 백준 18110번 - 'solved.ac' 풀이 (2) | 2023.01.20 |
[Python] 백준 3100번 - '국기 인식' 풀이 (3) | 2023.01.19 |
[Python] 백준 14936번 - '엘레베이터 장난' (2) | 2023.01.19 |
[Python] 백준 12873번 - '기념품' 풀이 (3) | 2023.01.18 |