Lumpy Space Princess - Adventure Time
코딩테스트/파이썬 알고리즘 문제풀이 입문

[파이썬 알고리즘 문제풀이 입문] 코드 구현력 기르기 - K번째 수

yaebb_82 2023. 4. 6.

*문제 본문은 강의 내용과 관련되어 있어 자세하게 적지 않았습니다.

 

 

 

문제

N개의 숫자로 이루어진 숫자열이 주어지면 해당 숫자열 중에서 s번째 부터 e번째 까지의 수를 오름차순으로 정렬했을 때, k번째로 나타나는 숫자를 출력하는 프로그램을 작성하세요.

 

 

풀이

• 내 풀이

import sys
input = sys.stdin.readline

T = int(input())

for i in range(T):
    result = list()
    N, s, e, k = map(int, input().split())
    nums = list(map(int, input().split()))

    result = nums[s-1:e]
    result.sort()
    print(f"#{i+1} {result[k-1]}")

 

• 답안

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]))

- 답안과 비교했을 때, 내 풀이와 거의 비슷했지만 조금 다른 점이 있었다.

- list를 슬라이싱 한 결과물을 나는 새로운 list 변수를 선언해서 넣었는데, 답안에서는 기존 list에 다시 할당해주었다. 새로운 변수를 굳이 선언할 필요가 없다는 것을 알게 되었다.

- print()로 출력할 때, 나는 f-string으로 출력했는데, 답안에서는 %를 사용해서 출력해주었다. 이 부분에 대해서는 편한 것을 사용하면 될 것 같다.

 

 

 

반응형

댓글