• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

a 리스트는 어떻게 발생하게 된건가요?

22.02.14 13:16 작성 조회수 89

0

N개의 숫자로 이루어진 숫자열이 주어지면 해당 숫자열중에서 s번째부터 e번째 까지의 수를 오름 차순 정렬했을 때 k번째로 나타나는 숫자를 출력하는 프로그램을 작성하세요. - 입력 설명 1.1 첫 번째 줄에 테스트 케이스 T(1<=T<=10)이 주어집니다. 각 케이스별 1.2 첫 번쨰 줄은 자연수 N(5<=N<=500), s, e, k가 차례로 주어진다. 1.3 두 번쨰 줄에 N개의 숫자가 차례로 주어진다. - 출력 설명 2.1 각 케이스별 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 입력예제1 해설: 2 7 3 8의 숫자 중 3번째로 작은 수는 7이다.
 
import sys
sys.stdin=open("k번째.txt", 'rt')

T = int(input()) # T의 값에 2?
print('T:',T)
for t in range(T):
n, s, e, k = map(int, input().split())
print(f"n, s, e, k: {n}, {s}, {e}, {k}")
a = list(map(int, input().split()))
print(f"a: {a}")
a = a[s-1:e]
print(f"a 리스트의 s번째부터 e까지: {a}")
a.sort()
print(f"sorting된 a 리스트: {a}" )
print("#%d %d" %(t+1, a[k-1]))
 
 
```sh
T: 2 n, s, e, k: 6, 2, 5, 3 a: [5, 2, 7, 3, 8, 9] a 리스트의 s번째부터 e까지: [2, 7, 3, 8] sorting된 a 리스트: [2, 3, 7, 8] #1 7 n, s, e, k: 15, 3, 10, 3 a: [4, 15, 8, 16, 6, 6, 17, 3, 10, 11, 18, 7, 14, 7, 15] a 리스트의 s번째부터 e까지: [8, 16, 6, 6, 17, 3, 10, 11] sorting된 a 리스트: [3, 6, 6, 8, 10, 11, 16, 17] #2 6
```
 
1. 입력 설명부분에서 첫번째 테스트 케이스가 2를 넣고
2. 두번재 줄은 N개의 숫자라면 2개의 숫자가 차례로 주어지는건가요?
3. 질문이 헷갈리네요. 특히 입력 설명 부분이 첫째줄이 어디이고 두째줄이 어디인지 모르겠습니다. 
4. a의 변수값을 stdin으로 받을때는(예. 5 2 7 3 8 9) 두번째줄 6 2 5 3의 e번째 값을 첫 값으로 5 2 7 ..로 받아 3번째 줄을 나열해야하는데 이때 6을 첫 값으로 받았기에 6개의 자연수가 나열되어야 하는 규칙 맞는건가요? 
그리고 입력예제의 4번째 줄은 어떻게 해서 생성된건가요? 
생성된게 아니라 이전 6, 2, 5, 3과 같이 문제가 시작되는 지점인건가요?
그래서 4번째 줄의 15번째의 1번째 값이 15라서 5번째 줄의 나열된 수가 15개가 되는거고요?
 
결론적으로 
s번째부터 e번째까지 수를 오름차순으로 정렬하고 k번쨰를 출력해야하는데 

답변 0

답변을 작성해보세요.

답변을 기다리고 있는 질문이에요.
첫번째 답변을 남겨보세요!