Programmers 레벨 0_코딩 기초 트레이닝 문제 풀이
https://school.programmers.co.kr/learn/challenges/training?order=recent
코딩 기초 트레이닝 | 프로그래머스 스쿨
프로그래밍 언어를 처음 접하거나 프로그래밍 언어에 익숙해지고 싶다면? 코딩 역량을 탄탄하게 길러주는 코딩 기초 트레이닝으로 차근차근 코딩에 대한 기초 감각을 길러 보세요.
school.programmers.co.kr
풀이 날짜 : 2023-09-16
소요 시간 : 30min
문제 설명
정수 배열 arr와 query가 주어집니다.
query를 순회하면서 다음 작업을 반복합니다.
짝수 인덱스에서는 arr에서 query[i]번 인덱스를 제외하고 배열의 query[i]번 인덱스 뒷부분을 잘라서 버립니다.홀수 인덱스에서는 arr에서 query[i]번 인덱스는 제외하고 배열의 query[i]번 인덱스 앞부분을 잘라서 버립니다.
위 작업을 마친 후 남은 arr의 부분 배열을 return 하는 solution 함수를 완성해 주세요.
문제를 이해하는 데 시간이 조금 소요됐다. 이럴 때에는 그림을 그려가면서 알고리즘을 생각하면 더 빠르다.
문제를 다시 해설하자면,
query에서 필요한 것은 인덱스[0, 1, 2] 와 요소[4, 1, 2] 두 개이다. 즉, query[0] = 4, query[1] = 1, query[2] = 2임을 기억해두자.
짝수 인덱스는 [0, 1, 2]에서 [0, 2] = [4, 2] 이다.
짝수 인덱스일 때는, arr에서 arr[query[even]] 이후의 값들을 삭제한다.
홀수 인덱스는 [0, 1, 2]에서 [1] = [1] 이다.
홀수 인덱스일 때는 arr에서 arr[query[odd]] 이후의 값들을 삭제한다.
1. query[0] = 4이며, [0]은 짝수이므로, arr[4]인 '4' 이후의 값들만 제외한다.
2. query[1] = 1이며, [1]은 홀수이므로, arr[1]인 '1' 이전의 값들만 제외한다.
3. query[2] = 2이며, [2]는 짝수이므로, arr[2]인 '3' 이후의 값들만 제외한다.
그리고 최종 arr 값을 반환하면 된다.
나의 풀이
def solution(arr, query):
for i in range(len(query)) :
if i % 2 == 0 :
del arr[query[i]+1:]
else :
del arr[:query[i]]
return arr
'Coding Study > Programmers (Python)' 카테고리의 다른 글
[프로그래머스/파이썬] Lv.0 순서 바꾸기 (1') (0) | 2023.09.17 |
---|---|
[프로그래머스/파이썬] Lv.0 n 번째 원소부터 (1') (0) | 2023.09.17 |
[프로그래머스/파이썬] Lv.0 2의 영역 (0) | 2023.09.16 |
[프로그래머스/파이썬] Lv.0 배열 만들기 3 (1) | 2023.09.16 |
[프로그래머스/파이썬] Lv.0 첫 번째로 나오는 음수 (0) | 2023.09.16 |