K번째 수
📄 문제
N개의 숫자로 이루어진 숫자열이 주어지면
해당 숫자열중에서 s번째부터 e번째 까지의 수를
오름차순 정렬했을 때 k번째로 나타나는
숫자를 출력하는 프로그램을 작성하세요.
▣ 입력설명
첫 번째 줄에 테스트 케이스 T(1<=T<=10)이 주어집니다.
각 케이스별 첫 번째 줄은 자연수 N(5<=N<=500), s, e, k가 차례로 주어진다.
두 번째 줄에 N개의 숫자가 차례로 주어진다.
▣ 출력설명
각 케이스별 k번째 수를 아래 출력예제와 같이 출력하세요.
▣ 입력예제
2
6 2 5 3
5 2 7 3 8 9
15 3 10 3
4 15 8 16 6 6 17 3 10 11 18 7 14 7 15
▣ 출력예제
#1 7
#2 6
🧞 풀이
풀이
'''
[자료구조와 알고리즘 입문]
K번째 수
N개의 숫자로 이루어진 숫자열이 주어지면
해당 숫자열중에서 s번째부터 e번째까지의 수를
오름차순 정렬했을 때 K번째로 나타나는
숫자를 출력하는 프로그램을 작성하세요.
'''
# 입력: 첫 째줄 t = test case
# 입력: 각 케이스별 첫 째줄 자연수 n, s, e, k
# 입력: 각 케이스별 둘 째줄 n개의 숫자가 주어짐
# 출력: 각 케이스별 k번째 수 출력
# t = 테스트 케이스
# n = n개 숫자
# s = 시작 순서 번째
# e = 끝 순서 번째
# k = 출력 순서 번째
t = int(input())
for i in range(t):
n, s, e, k = map(int, input().split())
n_list = input().split()
a_list = []
for j in range(s-1, e):
a_list.append(int(n_list[j]))
a_list.sort()
print(f'#{i+1} {a_list[k-1]}')
다른 사람 풀이
# K번째 수
# 케이스 갯수 읽기
T=int(input())
# 케이스 갯수만큼 for문 돌리기
for t in range(T):
n, s, e, k = map(int, input().split())
a = list(map(int, input().split()))
a = a[s-1:e]
a.sort() # 오름차순 정렬
print("#%d %d" %(t+1, a[k-1]))
'🧩 Algorithm > 🟨 Python' 카테고리의 다른 글
[파이썬 알고리즘] 자릿수의 합 (0) | 2022.07.24 |
---|---|
[파이썬 알고리즘] 정다면체 (0) | 2022.07.24 |
[파이썬 알고리즘] 대표값 (0) | 2022.07.24 |
[파이썬 알고리즘] K번째 큰 수 (0) | 2022.07.24 |
[파이썬 알고리즘] K번째 약수 (0) | 2022.07.24 |