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

Uu님의 프로필 이미지
Uu

작성한 질문수

2주만에 통과하는 알고리즘 코딩테스트 (2024년)

기억 ( 누적합 )

3강 누적합 문제 4. 2차원 누적합

해결된 질문

작성

·

563

1

안녕하세요! 해당 문제 질문이 있습니다.

(2,2) 와 (2,4) 범위의 합을 구하는 문제인데

왜 (4,3)과 (3,2) 값을 구해서 빼주는 건가요?

그 전까지 설명해주시는 건 이해를 했는데 제대로 이해를 못한건지 마지막 출력 부분이 이해가 안되네요 ㅜㅠ

답변 1

0

코딩 센세님의 프로필 이미지
코딩 센세
지식공유자

마지막 부분 설명을 잘못했네요! 찾아 주셔서 감사합니다! 바로 수정해두겠습니다!

 

고쳐서 설명하자면 일단,

먼저 문제로부터 x1,y1,x2,y2로 입력을 받았고,

저는 2차원 배열 문제를 풀 때 [Y축][X축] 형태로 만들어서 문제를 풀고 있습니다!

 

그래서 문제를 보시면

  1. (2,2)와 (3,4)의 범위의 합을 계산해야합니다.

  2. 이걸 제가 (X,Y)형태에서 (Y,X)형태로 바꾸면 (2,2)에서 (4,3)까지의 범위를 구하는 것이 됩니다.

  3. 그래서 정답은 prefix[4][3]까지의 합에서 prefix[2][2]뒤의 범위를 빼줘야 함으로

 

prefix[y2][x2] - prefix[y2][x1-1] - prefix[y1-1][x2] + prefix[y1-1][x1-1]가 정답이 됩니다!

따라서, prefix[4][3] - prefix[4][1] - prefix[1][3] + prefix[1][1]가 정답입니다!

 

오늘 바로 수정해두겠습니다!

 

image

image

[4,3] - [1,3] - [4,1] + [1,1]

image

 정답 완성!

 

 

 

 

 

코딩 센세님의 프로필 이미지
코딩 센세
지식공유자

강의 수정 완료 했고, 오늘 1시 반까지 재 업로드 완료 예정입니다 :)

sonjungwoo9@gmail.com 이 이메일로 연락주시면 커피랑 무료 수강권 전달해드리겠습니다. 진심으로 감사드립니다 :)

Uu님의 프로필 이미지
Uu
질문자

감사합니다. 덕분에 다시 이해했습니다 ㅎㅎ

ji 로 시작하는 아이디로 메일보냈습니다. 저도 정말 감사합니다!!

코딩 센세님의 프로필 이미지
코딩 센세
지식공유자

메일이 전달이 안된 것 같아요!

혹시 아래 메일로 한번 더 보내주실 수 있으실까요?

sonjungwoo9@naver.com

Uu님의 프로필 이미지
Uu

작성한 질문수

질문하기