반응형
코딩 테스트 30일 챌린지
푼 문제 수 : 1
문제 요약
테스트 케이스가 주어지고 n개의 숫자로 이루어진 숫자열이 주어지면 이 중에 s ~ e까지의 수를 오름차순정렬하고 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
풀이
t = int(input())
for i 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" %(i+1, a[k-1]))
전체 풀이는 위와 같다. 조금 더 자세히 설명하기 위해 코드마다 주석을 달아봤는데 떼어서 보면 아래와 같다.
# t = 테스트 케이스(2)회 출력
t = int(input())
테스트 케이스 출력을 위한 input값이다.
# 테스트 케이스 만큼 실행한다. 2회의 테스트 케이스를 뽑기 위해 2회 실행.
for i in range(t):
테스트 케이스 만큼 실행을 하기 위해 for문을 만들어 주었다.
# n = 첫 번째 줄(6)
# s ~ e = 오름차순정렬대상(2) ~ (5)
# k = 번째 수 출력(3)
n, s, e, k = map(int, input().split())
각 값을 받는다.
# n개의 숫자를 받기 위한 list 생성
a = list(map(int, input().split()))
정렬의 대상이 되는 숫자를 받기 위해 list로 만들어주었다.
# list a의 0번째 인덱스에 첫 번째 값이 들어가 있으므로 s번째는 s-1이 된다.
a = a[s-1:e]
위에서 받은 배열을 s부터 e까지 a배열에 담아준다.
# 오름차순정렬을 후 k번째를 출력해야 하므로 sort() 해준다.
a.sort()
오름차순정렬을 해주고
# 출력 예제에 따라 포멧 형식을 다듬어 알맞게 출력을 해준다.
print("#%d %d" %(i+1, a[k-1]))
마지막으로 출력을 해준다. 첫 출력이 이뤄지고 두 번째 테스트 케이스 출력을 위해 다시 for문이 실행되면서 2개의 테스트 케이스가 나오게 된다.
반응형
'챌린지 > 코딩 테스트 30일 챌린지' 카테고리의 다른 글
[코딩 테스트 30일 챌린지] : 05 (0) | 2022.06.16 |
---|---|
[코딩 테스트 30일 챌린지] : 04 (0) | 2022.06.15 |
[코딩 테스트 30일 챌린지] : 03 (0) | 2022.06.14 |
[코딩 테스트 30일 챌린지] : 01 (0) | 2022.06.12 |
[코딩 테스트 30일 챌린지] : 챌린지 설명과 시작 전 코딩 테스트 실력 상태 체크 (0) | 2022.06.12 |
댓글