일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- PYTHON
- 백준 #파이썬 #알고리즘 #코딩테스트
- 다이나믹프로그래밍
- java #자바 #동빈나
- 코딩테스트
- 백트랙킹
- 다익스트라
- 백준
- java #자바
- java #자바 #생활코딩
- react #리액트 #동빈나 #나동빈 #유튜브강의
- BFS
- 파이썬
- css #웹 #생활코딩
- Dijkstra
- dp
- css #생활코딩 #웹
- 파이썬 #백준 #알고리즘 #코딩테스트
- 프로그래머스 #파이썬 #코딩테스트 #알고리즘
- 백준 #알고리즘 #파이썬 #코딩테스트
- 파이썬 #알고리즘 #코딩테스트 #프로그래머스
- 프로그래머스 #파이썬 #알고리즘 #코딩테스트
- react #리액트 #동빈나
- 재귀
- DFS
- java #자바 #나동빈
- 투포인터
- 알고리즘
- 자바 #java
- 프로그래머스
Archives
- Today
- Total
커리까지
[백준] 1337번 올바른 배열 파이썬 본문
728x90
SMALL
문제
올바른 배열이란 어떤 배열 속에 있는 원소 중 5개가 연속적인 것을 말한다. (연속적인 것이란 5개의 수를 정렬했을 때, 인접한 수의 차이가 1인 것을 말한다.)
예를 들어 배열 {6, 1, 9, 5, 7, 15, 8}은 올바른 배열이다. 왜냐하면 이 배열 속의 원소인 5, 6, 7, 8, 9가 연속이기 때문이다.
배열이 주어지면, 이 배열이 올바른 배열이 되게 하기 위해서 추가되어야 할 원소의 개수를 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 배열의 크기 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 배열의 원소가 한 줄에 하나씩 주어진다. 원소는 1,000,000,000보다 작거나 같은 음이 아닌 정수이다. 배열에 중복되는 수는 없다.
출력
첫째 줄에 입력으로 주어진 배열이 올바른 배열이 되게 하기 위해서 추가되어야할 원소의 최소 개수를 출력한다.
예제 입력 1
3
5
6
7
예제 출력 1
2
예제 입력 2
6
5
7
9
8492
8493
192398
예제 출력 2
2
예제 입력 3
4
1000
2000
3000
4000
예제 출력 3
4
예제 입력 4
7
6
1
9
5
7
15
8
예제 출력 4
0
제출 답안
'''
1. 아이디어
- i번째 인덱스를 기준으로 i+5까지 배열을 만든다.
- 그 다음 인덱스부터 for loop 를 돌면서 범위안에 있는 원소의 개수를 저장한다.
- 5에서 배열이 된 원소의 개수를 뺀다.
2. 시간 복잡도
-
3. 변수
- num []
'''
import sys
input = sys.stdin.readline
n = int(input())
num = sorted([int(input()) for _ in range(n)])
result = 0
for idx, val in enumerate(num):
temp = range(val, val+5)
cnt = 1
for k in num[idx + 1:]:
if k in temp:
cnt += 1
result = max(result, cnt)
print(5-result)
728x90
LIST
'알고리즘 > 풀이' 카테고리의 다른 글
[백준] 25916번 싫은데요 파이썬 (0) | 2023.02.05 |
---|---|
[백준] 22857번 가장 긴 짝수 연속한 부분 수열 (small) 파이썬 (0) | 2023.02.04 |
[백준] 2018번 수들의 합 5 파이썬 (1) | 2023.02.02 |
[백준] 1940번 주몽 파이썬 (0) | 2023.01.31 |
[백준] 14246번 K보다 큰 구간 파이썬 (0) | 2023.01.30 |
Comments