인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

wldls317님의 프로필 이미지

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

8주차 개념 #1. 펜윅트리(Fenwick Tree)

펜윅트리 개념강의 6분 37초 부근 설명 질문입니다.

해결된 질문

작성

·

52

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

 

펜윅트리 개념강의 6분 37초 부근 설명 질문입니다.

{3,4,10,11}에서 3,4,10은 다 인덱스+1을 해서 해당 번호의 노드의 값을 구할떄 더했는데, 갑자기 마지막 11은 이진수로 변환하면 100(4)인데, +1을 하지않고 4번쨰 요소에다 그냥 더하라고 설명하셨는데, 노드 번호가 (idx를 이진수로 변환한 값)+1인 노드에 더하는게 알맞은 규칙 아닌가요? 갑자기 , +1을 하지않고 4번쨰 요소에다 그냥 더하라고 설명하신 부분이 이해가 되지 않습니다.

답변 1

0

큰돌님의 프로필 이미지
큰돌
지식공유자

안녕하세요 ㅎㅎ

저 부분은 이런 의미입니다.

tree[idx]에서

idx의 값을

1, 2, 4를 만들면서 해당 배열에다가 "3"을 더하라는 의미인데요.

tree[idx] += 3인데 여기서 idx에다가 최하위 노드를 계속해서 더합니다.

idx = 1일 때 1을 더하면 2, 2일 때 2를 더하면 4 .. 이런식으로 idx를 결정하면서 3을 더하는 것이죠.

 

혹시 이해가 되실까요?

감사합니다.

wldls317님의 프로필 이미지

작성한 질문수

질문하기