[파이썬] 프로그래머스 Lv0. n보다 커질 때까지 더하기, 수열과 구간 쿼리 1
안녕하세요. 머킹입니다.
요즘 환절기라서 감기기운이 떨어지지 않네요.
다들 모쪼록 감기 조심하세요.
n보다 커질 때까지 더하기
문제 설명
정수 배열 numbers와 정수 n이 매개변수로 주어집니다. numbers의 원소를 앞에서부터 하나씩 더하다가 그 합이 n보다 커지는 순간 이때까지 더했던 원소들의 합을 return 하는 solution 함수를 작성해 주세요.
sum을 해서 더한 다음
이 수가 커지면 딱 나오도록 return 하는 함수를 만들어야겠습니다.
def solution(numbers, n):
answer = 0
for i, num in enumerate(numbers):
answer += num
if answer > n:
return answer
return answer
예전에 했던 문제의 답하고 비슷한 결이 나왔습니다.
def solution(numbers, n):
return next(sum(numbers[:i + 1]) for i in range(len(numbers)) if sum(numbers[:i + 1]) > n)
다른 사람들의 풀이를 보는데 next라는 함수가 있네요.
궁금해서 찾아봤습니다.
next는 반복 가능 객체의 다음 요소 반환하는 함수라고 합니다.
수열과 구간 쿼리 1
문제 설명
정수 배열 arr와 2차원 정수 배열 queries이 주어집니다.
queries의 원소는 각각 하나의 query를 나타내며, [s, e] 꼴입니다.
각 query마다 순서대로 s ≤ i ≤ e인 모든 i에 대해 arr [i]에 1을 더합니다.
위 규칙에 따라 queries를 처리한 이후의 arr를 return 하는 solution 함수를 완성해 주세요.
입출력 예시가 이러한데 여기서 문제는 저는 또 이해가 안 되기 시작했습니다...
왜.. s보다 크거나 같고 e보다 작거나 같은 모든 i들에 1을 더했는데2번째 줄에 1은 똑같을까요..?
와 저 진짜 바본가 봐요...인덱스를 못 보고 이렇게 문제를 풀고 있었네요 와..저는 s보다 크거나 같고 e보다 작거나 같은 수에 1을 더하는 거라고 이해해서왜 자꾸 결과가 저렇게 돼?라고 생각했는데 인덱스였어요ㅎㅎ..
def solution(arr, queries):
for query in queries:
s, e = query
for i in range(s, e + 1):
arr[i] += 1
return arr
이 코드로 풀었습니다..
진짜 문제를 이해하는 게 얼마나 중요한지 다시 또 느끼네요..
대신 문제를 이해할 때의 짜릿함이 있네요!
내일 또 뵙겠습니다
'오늘부터 코딩테스트' 카테고리의 다른 글
[오늘부터 코딩테스트]파이썬으로 프로그래머스 코딩 기초 프로그램 풀기 (0) | 2023.10.20 |
---|---|
[오늘부터 코딩테스트]파이썬으로 프로그래머스 코딩 기초 프로그램 풀기 (1) | 2023.10.19 |
[오늘부터 코딩테스트]파이썬으로 프로그래머스 코딩 기초 프로그램 풀기 (0) | 2023.10.11 |
[오늘부터 코딩테스트]파이썬으로 프로그래머스 코딩 기초 프로그램 풀기 (0) | 2023.10.11 |
[오늘부터 코딩테스트]파이썬으로 프로그래머스 코딩 기초 프로그램 풀기 (0) | 2023.10.06 |