본문 바로가기
Algorithm/파이썬 알고리즘 문제풀이 (코딩테스트대비)

[파이썬 알고리즘 문제풀이] : K번째 수

by 오주현 2021. 12. 10.
반응형
문제

n개 숫자로 이루어진 숫자열이 주어지면 s번째부터 e번째까지의 순을 오름 차순으로 정렬했을 때 k번째로 나타나는 숫자를 출력하시오.

 

주의

출력문에 있는 #%d는 출력 예제에 #이 있기 때문에 #자체를 출력하기 위해 넣은 것 입니다.

 

풀이
T = int(input())
for i in range(T):
    n, s, e, k = map(int, input().split())
    #값을 입력 받아서 split기준으로 나누고 int로 바꿔준다.
    #int형으로 바뀐 입력 받은 값들은 a라는 list안에 담기게 된다.
    a=list(map(int, input().split()))
    #s~e까지 받는데 0번째 인덱스부터 순서대로 배정받기 위해 [s-1:e]를 해줍니다.
    #마지막 e는 자신을 포함하지 않으므로 추가 연산자가 필요하지 않습니다.
    a=a[s-1:e]
    #s~e까지 리스트로 받은 값을 오름차순 정렬을 해줍니다.
    a.sort()
    #%d로 받고 값을 받습니다.
    #출력문 맨 앞에 #%d인 것은 출력 예제에서
    # #1 7
    # #2 6
    #이런식으로 받기 때문에 앞에 #문자 자체를 출력하기 위해 넣었습니다.
    print("#%d %d" %(i+1, a[k-1]))
반응형

댓글