Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 프로그래머스
- 트랜잭샨
- 누적합
- prg 패턴
- 셀러리
- piplining
- 레디스 동시성
- 검색어 추천
- 쿠키
- 결제서비스
- 숫자 블록
- 구현
- 좋은 코드 나쁜 코드
- 깊게 생각해보기
- gRPC
- 디버깅
- 코드 계약
- spring event
- jwt 표준
- 백준
- 객체지향패러다임
- 수신자 대상 다르게
- AWS
- 카카오
- 알람 시스템
- branch 전략
- 완전탐색
- docker
- 이분탐색
- BFS
Archives
- Today
- Total
코딩관계론
[백준] 태상이의 훈련소 생활 본문
반응형
변수 설명
N[] = 모래의 초기 상태
a, b deg = a이상 b이하 deg만큼 모래를 채워라(빼라)
풀이
a~b까지 deg를 누적해서 더해주고 b + 1에서 deg를 소멸시켜주자
누적해서 더해주는 것은 각 인덱스에 무엇을 얼만큼 더해야 하는지 알려주기 때문에 누적하는 것이 굉장히 중요하다.
여기서 문제점은 a ~ b까지 deg를 누적해서 더했다면 n[b + 1] = [b] + b[n + 1]이 된다.
n[b + 1]에서는 deg값을 인덱스마다 누적 할 필요가 없는데 어떻게 하면 소멸할 수 있을까를 고민하면 된다.
b[n + 1]에 -deg 값을 넣음으로써 해당하는 누적 값을 없앨 수 있다.
풀이
def make_psum(arr):
psum = []
psum.append(arr[0])
for i in range(1, len(arr)):
psum.append(psum[i - 1] + arr[i])
return psum
def solution(board, order_by_superior):
record_board = [0] * len(board)
for s, e, d in order_by_superior:
record_board[s - 1] += d
if e != len(board):
record_board[e] += -d
result_psum = make_psum(record_board)
answer = [x + y for x, y in zip(board,result_psum)]
return answer
if __name__ == "__main__":
n, m = map(int, input().split())
board = list(map(int, input().split()))
order_by_superior = []
for _ in range(m):
order_by_superior.append(list(map(int, input().split())))
answer = solution(board, order_by_superior)
for i in answer:
print(i, end=" ")
# 10 3
# 1 2 3 4 5 -1 -2 -3 -4 -5
# 1 5 -3
# 6 10 5
# 2 7 2
문제
소감
누적합 문제인지는 바로 느낌이 왔다. m 값을 보고 작업 방식을 보니 누적합이라고 생각이 들었다.
첫 번째 생각은 균일하게 더해지니깐 초기 n 값을 누적합으로 주고, (b -a + 1) * k 를 해서 빼자 라는 생각이 들었다.
해당 방법을 타겟으로 잡고 접근하니 n의 값이 다른데 누적합을 적용하는 것은 옳지 못하다고 생각이 들었기에 위의 방식으로 변경했다.
반응형
'개발 > 알고리즘' 카테고리의 다른 글
[프로그래머스] 순위 검색(python) (1) | 2022.10.31 |
---|---|
[프로그래머스] 메뉴리뉴얼(python) (0) | 2022.10.09 |
[프로그래머스] 신규 아이디 추천(python) (0) | 2022.10.03 |
[프로그래머스] 파괴되지 않는 건물(python) (0) | 2022.10.03 |
[프로그래머스] 양과 늑대 풀이(python) (0) | 2022.10.01 |