코딩테스트/PYTHON

[프로그래머스][PYTHON] Lv. 0 수열과 구간 쿼리 1

_알파카 2024. 2. 3. 23:31
728x90

문제 설명

https://school.programmers.co.kr/learn/courses/30/lessons/181883

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

내 풀이

def solution(arr, queries):
    for s, e in queries:
        for i in range(len(arr)):
            if s <= i and i <= e:
                arr[i] += 1
    return arr

 

어렵지 않은 문제였고, 나름 잘 푼 문제다. 

그러나 다른 사람 풀이를 남겨보고 싶어 글을 쓴다. 

 

다른 사람 풀이

def solution(arr, queries):
    for s, e in queries:
        for i in range(s, e+1): 
        	arr[i] += 1
    return arr

 

나는 s <= i, i <= e의 다중조건을 통해 결국에는 arr 배열을 모두 순회하였다. 

그러나 만약에 arr 배열이 매우 길다면 시간초과의 문제가 일어날 수 있기 때문에, 

우리가 구하고자 하는 범위만 순회하면 된다. 

 

즉, 우리는 s <= i <= e의 범위가 궁금하므로, 

그 범위만을 순회한다!

 

기억하고 싶은 풀이였다. 

 

끄읏-!

728x90