bearbrick 2022. 5. 15. 02:11

*이 풀이는 인프런: 파이썬 알고리즘 문제풀이 강좌에 기반하였습니다.

 

 

 

내 풀이

 

1. 테스트 케이스 수 만큼 입력받기

2. n개의 숫자 중 s번째부터 e번째까지의 숫자 구하기 (반복문 이용해서 배열에 저장)

3. 위의 숫자들을 오름차순 정렬하고 K번째 숫자 구하기

 

import sys
#sys.stdin=open("input.txt","rt")
t=int(input())
for t in range(t):
    arr2=[]
    n,s,e,k = map(int, input().split())
    arr=list(map(int, input().split()))
    for i in range(s,e+1):
        arr2.append(arr[i-1])
    arr2.sort()
    print("#%d %d" %(t+1,arr2[k-1]))

 

 

 

강사님 풀이

 

import sys
#sys.stdin = open("input.txt","rt")
T=int(input())
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]))

 

 

 

배운 점

 

1. 리스트 슬라이스 기능으로 리스트 요소를 원하는 대로 잘라낼 수 있다.

2. 인덱스 번호는 언제나 0부터 시작한다는 것을 주의한다.