묻고 답해요
132만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
안녕하세요 문제가 이해되지 않는 부분이 있어서 질문드립니다.
입력예제 1 을 보면 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 이렇게 되어있는데 이것의 의미가 2 >TC 2개 생성 6 2 5 3 > 6개의 문자열 중에서 2번째에서 5번째까지의 수를 오름차순하여 3번째 수를 출력하라 5 2 7 3 8 9 > 문자열 6개 !!!!! 15 3 10 3 > 15개의 문자열 중에서 3번째에서 10번째의 수를 오름차순 하여 3번째 수를 출력하라 4 15 8 16 6 6 17 3 10 11 18 7 14 7 15 > 문자열 15개 !!!!! !!!!가 있는 부분의 숫자는 어떻게 나오는 기준이 뭘까요 그냥 랜덤으로 돌리는거까지 하라는 걸까요
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
a 리스트는 어떻게 발생하게 된건가요?
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번쨰를 출력해야하는데