🔗 문제
https://school.programmers.co.kr/learn/courses/30/lessons/181897
문제 설명
정수 n
과 정수 3개가 담긴 리스트 slicer
그리고 정수 여러 개가 담긴 리스트 num_list
가 주어집니다. slicer
에 담긴 정수를 차례대로 a
, b
, c
라고 할 때, n
에 따라 다음과 같이 num_list
를 슬라이싱 하려고 합니다.
n = 1
:num_list
의 0번 인덱스부터b
번 인덱스까지n = 2
:num_list
의a
번 인덱스부터 마지막 인덱스까지n = 3
:num_list
의a
번 인덱스부터b
번 인덱스까지n = 4
:num_list
의a
번 인덱스부터b
번 인덱스까지c
간격으로
올바르게 슬라이싱한 리스트를 return하도록 solution 함수를 완성해주세요.
제한사항
n
은 1, 2, 3, 4 중 하나입니다.slicer
의 길이 = 3slicer
에 담긴 정수를 차례대로a
,b
,c
라고 할 때- 0 ≤
a
≤b
≤num_list
의 길이 - 1 - 1 ≤
c
≤ 3
- 0 ≤
- 5 ≤
num_list
의 길이 ≤ 30 - 0 ≤
num_list
의 원소 ≤ 100
입출력 예
n | slicer | num_list | result |
3 | [1, 5, 2] | [1, 2, 3, 4, 5, 6, 7, 8, 9] | [2, 3, 4, 5, 6] |
4 | [1, 5, 2] | [1, 2, 3, 4, 5, 6, 7, 8, 9] | [2, 4, 6] |
💻 Code
def solution(n, slicer, num_list):
a, b, c = slicer # [시작 인덱스, 끝 인덱스, 간격]
slicing = {1: [0, b, 1], 2: [a, len(num_list) - 1, 1], 3: [a, b, 1], 4: [a, b, c]}
s, e, step = slicing[n]
return num_list[s:e + 1:step]
n
에 따른 슬라이싱 정보를 저장하기 위해 딕셔너리slicing
를 선언한다.'n': [시작 인덱스, 끝 인덱스, 간격]
정보를 저장한다.
slicing
을 이용하여n
에 따른s
,e
,step
정보를 추출한 뒤, 해당 인덱스에 맞게 리스트를 슬라이싱하여 리턴한다.
'Algorithm > 프로그래머스' 카테고리의 다른 글
[Lv.0/Python] 빈 배열에 추가, 삭제하기 (0) | 2023.07.09 |
---|---|
[Lv.0/Python] 문자열 묶기 (0) | 2023.07.07 |
[Lv.0/Python] 컨트롤 제트 (0) | 2023.07.07 |
[Lv.0/Python] 문자열 뒤집기 (0) | 2023.07.07 |
[Lv.0/Python] 문자열이 몇 번 등장하는지 세기 (0) | 2023.07.07 |