관리 메뉴

솜씨좋은장씨

[BaeKJoon] 11004번: K번째 수 (Python) 본문

Programming/코딩 1일 1문제

[BaeKJoon] 11004번: K번째 수 (Python)

솜씨좋은장씨 2020. 2. 16. 10:48
728x90
반응형

1일 1문제 10일차!

오늘 문제는 K번째 수 입니다.

 

 

11004번: K번째 수

수 N개 A1, A2, ..., AN이 주어진다. A를 오름차순 정렬했을 때, 앞에서부터 K번째 있는 수를 구하는 프로그램을 작성하시오.

www.acmicpc.net

이 문제는 N개의 숫자를 입력받고 그 N개의 숫자를 정렬한 다음 원하는 K번째 수가 무엇인지 맞추는 문제입니다.

 

처음 떠오른 아이디어는

입력받은 N개의 숫자를 내림차순으로 정렬한 뒤 뒤에서부터 K번째 수에 index로 접근하는 방법을 떠올려보았습니다.

 

바로 구현해보았습니다.

import sys

N, K = map(int, input().split())

nums = []

for i in range(N):
    num = int(input())
    nums.append(num)
    
nums.sort(reverse=True)

print(nums[-K])

결과는!

Jupyter Notebook에서는 이상없이 실행이 되었는데 백준에 제출하니 런타임 에러라는 결과를 얻었습니다.

 

input()이 문제인가싶어 sys.stdin.readline()으로 바꾸어보았습니다.

 

생각해보니 pop 할 것도아닌데 굳이 reverse=True로 내림차순으로 정렬하지 않아도 되는 것을 깨달았습니다.

왜 계속 런타임 에러가 나오나.... 문제를 다시 보니

 

입력을 1 2 3 4 5 6 7 8  9 10 처럼 1줄로 받아야하는 것을 이제야 깨달았습니다.

import sys

N, K = map(int, input().split())

nums = sys.stdin.readline().split(' ')
for i in range(len(nums)):
    nums[i] = int(nums[i])
    
nums = sorted(nums)

print(nums[K-1])

 

 

SOMJANG/CODINGTEST_PRACTICE

1일 1문제 since 2020.02.07. Contribute to SOMJANG/CODINGTEST_PRACTICE development by creating an account on GitHub.

github.com

 

Comments