문제 풀이

앨리스 코드 챌린지 2번 문제

zhelddustmq 2024. 7. 10. 00:00

수가 주어졌을 때, k씨가 고른 숫자를 출력하는 프로그램을 작성하세요.

 

지시사항

입력

  • 첫째 줄에 배열의 크기인 정수 과 k씨가 일한 횟수인 정수 을 입력합니다.

  • 둘째 줄에는 배열에 포함된 정수를 순서대로 입력합니다. 각 정수는 절댓값이 200을 넘지 않는 정수입니다.
  • 다음 줄 부터 개 줄에 걸쳐 k씨가 고른 범위인 정수 , 와 정수 를 입력합니다.

출력

  • k씨가 일할 때마다 k씨가 선택한 숫자를 한 줄에 하나씩 출력합니다.

입력 예시

8 3
1 7 6 8 1 6 4 5
1 5 3
2 6 2
4 8 3

출력 예시

6
6
5

 

 

정답 코드:


# #첫번째 줄, 배열의 크기와 일한 횟수
# size_count = input()
# a_size = int(size_count.split(' ')[0])
# k_work = int(size_count.split(' ')[1])
# count = 0
# answer = []
# 
# 
# #배열 입력
# a = input()
# a = a.split(' ')
# for num, i in enumerate(a):
#     a[num] = int(i)
# 
# #시작, 끝, 오름차순 정렬된것에서 인덱스에 있는 값 출력
# for i in range(k_work):
#     w = input()
#     w = w.split(' ')
#     temp = list(a[int(w[0])-1:int(w[1])])
#     answer.append(sorted(temp)[int(w[2])-1])
# 
# for i in answer:
#     print(i)
# 위에 코드 예외 케이스 부탁해요...

# 입력 받기
first_line = input().strip().split()
n = int(first_line[0])
m = int(first_line[1])

arr = list(map(int, input().strip().split()))

queries = []
for _ in range(m):
    line = input().strip().split()
    i = int(line[0])
    j = int(line[1])
    k = int(line[2])
    queries.append((i, j, k))

# 각 쿼리 처리 및 결과 출력
results = []
for query in queries:
    i, j, k = query
    subarray = arr[i-1:j]
    sorted_subarray = sorted(subarray)
    results.append(sorted_subarray[k-1])

for result in results:
    print(result)

'문제 풀이' 카테고리의 다른 글

앨리스 코드 챌린지 3번 문제  (0) 2024.07.11
89. 할인 행사  (0) 2024.07.10
행렬 곱셈  (0) 2024.07.09
엘리스 코드 챌린지 1번문제  (0) 2024.07.09
n^2 배열 자르기  (0) 2024.07.08