https://school.programmers.co.kr/learn/courses/30/lessons/181922
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제
문제 설명이 부족한 것 같아 정리해보았다.
문제에서 말하는 i가 값이 아니라 index를 뜻하는거라서 조금 헷갈리는 것 같다. 수열과 구간 쿼리 문제들에서 i는 다 index를 뜻하는 것 같다.
입출력 예시를 가지고 설명 고고씽
※ 0은 모든 수의 배수이다
입출력 예시 (arr) | 프로세스 | 변동 값 |
[0, 1, 2, 4, 3] | [0, 4, 1] 가지고 연산 1) arr[0] ~ arr[4]에 대해 >> [0, 1, 2, 4, 3] 2) 1의 배수인 index에 대하여 >> 1의 배수는 0, 1, 2, 3, 4 3) arr[index] + 1 |
모든 값 |
[1, 2, 3, 5, 4] | [0, 3, 2] 가지고 연산 1) arr[0] ~ arr[3]에 대해 >> [1, 2, 3, 5, 2) 2의 배수인 index에 대해 >> 2의 배수는 0, 2 3) arr[index] + 1 |
arr[0], arr[2] |
[2, 2, 4, 5, 4] | [0, 3, 3] 가지고 연산 1) arr[0] ~ arr[3]에 대해 >> [2, 2, 4, 5, 2) 3의 배수인 index에 대해 >> 3의 배수는 0, 3 3) arr[index] + 1 |
arr[0], arr[3] |
[3, 2, 4, 6, 4] |
코드
def solution(arr, queries):
for s, e, k in queries :
for i in range(s,e+1) :
if i%k == 0 :
arr[i] += 1
return arr
코드는 생각보다 간단하다.
arr 값을 변경하지 않으려면 위에 answer = arr.copy() 를 추가해주면 될 것 같다.
그리고.. 문제에서 k가 0이 될 수도 있다고 했는데, 테스트케이스에는 해당 조건이 없는지,, 따로 처리를 안해줘도 통과가 된다고 한다.
이걸 다 반영해보면.. 이렇게 되려나...
def solution(arr, queries):
answer = arr.copy()
for s, e, k in queries :
for i in range(s,e+1) :
if k == 0 :
print("k is zero")
elif i%k == 0 :
answer[i] += 1
return answer
'10 어 Ga zi (이모저모고모) > 코딩테스트' 카테고리의 다른 글
[프로그래머스] Python - Lv.0 배열의 평균값 (0) | 2024.04.30 |
---|---|
[프로그래머스] Python - Lv.0 두 수의 나눗셈 (0) | 2024.04.30 |
[프로그래머스] Python - Lv.0 수열과 구간 쿼리 2 (0) | 2024.04.24 |
[프로그래머스] Python - Lv.0 수열과 구간 쿼리 3 (0) | 2024.04.24 |
[프로그래머스] Python - Lv.0 수 조작하기 2 (2) | 2024.04.22 |