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

대기업목표님의 프로필 이미지
대기업목표

작성한 질문수

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

2-C

2-C 복습 !

작성

·

236

·

수정됨

0

안녕하십니까 큰돌님

복습하다가 궁금한게 생겼습니다

안전영역 최대값을 구하기 위해 ret 을 1로 초기화하는데

3중 반복문의 첫 번째 for문이 무조건 1부터 100까지 돌면서 잠기지 않는 지역이 있을 수 있어도(이때, 최소값은 1)

영역 높이가 최대 100이고 반복문 d값이 100까지 가면 결국 마지막에 100 이하의 높이인 영역은 잠기므로 무조건 최소값은 0으로 되는 거 아닌가요 ?? 그래서 ret 을 0으로 초기화 해야 된다고 생각하는데 뭔가 어렵네요ㅜ

답변 1

0

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

안녕하세요 대기업님 ㅎㅎ

3중 반복문의 첫 번째 for문이 무조건 1부터 100까지 돌면서 잠기지 않는 지역이 있을 수 있어도(이때, 최소값은 1)

영역 높이가 최대 100이고 반복문 d값이 100까지 가면 결국 마지막에 100 이하의 높이인 영역은 잠기므로 무조건 최소값은 0으로 되는 거 아닌가요 ?? 그래서 ret 을 0으로 초기화 해야 된다고 생각하는데 뭔가 어렵네요ㅜ

>> 아 100일 때는 당연히 0이 됩니다. 맞는 말씀이에요. 잘 생각하셨습니다. ㅎㅎ

다만, 문제를 잠깐볼까요?

이와 같이 장마철에 내리는 비의 양에 따라서 물에 잠기지 않는 안전한 영역의 개수는 다르게 된다. 위의 예와 같은 지역에서 내리는 비의 양에 따른 모든 경우를 다 조사해 보면 물에 잠기지 않는 안전한 영역의 개수 중에서 최대인 경우는 5임을 알 수 있다.

어떤 지역의 높이 정보가 주어졌을 때, 장마철에 물에 잠기지 않는 안전한 영역의 최대 개수를 계산하는 프로그램을 작성하시오.

문제를 보면 비가 100이 내릴 때가 아니라 1 ~ 100이 내릴때의 모든 경우의 수 중에서 "최대"치를 뽑는 문제입니다. 즉, 높이가 모두 100일 때 비가 99정도 내렸으면 최대 영역은 1이 되기 때문에 1이 되는 것이죠.

또 질문 있으시면 언제든지 질문 부탁드립니다.

좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.


대기업목표님의 프로필 이미지
대기업목표

작성한 질문수

질문하기