1) 문제
클릭▼
2-1) 코드
(내 코드)

2-2) 코드 & 코드 설명
(개인적으로 좋아하는 코드)

for i, j, k in commands:
answer.append(list(sorted(array[i-1:j]))[k-1])
# commands 에서 i, j, k 를 출력해보자.

# 이해하기 쉽게 i, j, k 를 하나씩 출력해보자.

# answer.append(list(sorted(array[i-1:j]))[k-1]) 를 쪼개서 살펴보면 우선 array를 [k-1:j] 로 슬라이싱 해서 출력해보자.

# i-1로 하는 이유는 인덱스는 0부터 시작하므로 array = [1, 5, 2, 6, 3, 7, 4] 에서 2번째 숫자는 5이고 인덱스로 나타면 array[1]의 위치이기 때문에 i-1로 슬라이싱 한다. # j는 -1을 하지 않는 이유는 슬라이싱 할때 만약 array[1:5] 라면 밑에 그림과 같이array 1번째 ~ 4번째 까지 출력되기 때문에 j에는 -1을 할 필요가 없다.

# sorted() 함수는 숫자를 순서대로 정렬해주는 함수이다.

# 슬라이싱한 리스트에서 [k-1] 번째 숫자를 출력한다. i와 마찬가지로 -1을 해준다.

# 위의 출력 결과를 좀 더 쉽게 설명하면 슬라이싱해서 sorted() 한 결과 [2, 3, 5, 6]를 apple 변수에 넣고 apple의 [k-1]번째 즉, apple[2]의 결과를 출력하라는 의미이다.

'코딩 연습' 카테고리의 다른 글
[카카오] 1차 비밀지도 (python) (0) | 2022.06.06 |
---|---|
[카카오] 거리두기 확인하기 (python) (0) | 2022.05.23 |
[프로그래머스] 체육복 (python) (0) | 2022.05.10 |
[카카오] 1차 다트 게임 (python) (0) | 2022.05.04 |
[프로그래머스] 내적 (python) (0) | 2022.04.28 |