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

AA66님의 프로필 이미지
AA66

작성한 질문수

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

맞왜틀팁 : 반례를 생각하는 방법 | 2 - C 보완설명

2-C 질문 있습니다

작성

·

74

0

http://boj.kr/6fddcaf0cc7c429f979e53823889d3bd

 

저는 이렇게 ret 을 0으로 두고 풀었는데요. 만약 ret을 1로 두고 푼다면 비에 전체가 잠기는 경우에는 안전영역이 0일텐데 이경우에 어긋나서 틀려야 되는거 아닌가요?

예를 들면 2*2로
50 50
50 50
의 높이로 구성된 지역에 비가 100씩 와버리게 되면 안전영역은 0개가 아닌가요? 그래서 ret은 1이 되면 안된다고 생각하는데 왜 맞게끔 채점이 되는건지 궁금합니다.

답변 2

0

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

안녕하세요 ㅎㅎ

저는 이렇게 ret 을 0으로 두고 풀었는데요. 만약 ret을 1로 두고 푼다면 비에 전체가 잠기는 경우에는 안전영역이 0일텐데 이경우에 어긋나서 틀려야 되는거 아닌가요?

>> 이 문제의 경우

첫째 줄에 장마철에 물에 잠기지 않는 안전한 영역의 최대 개수를 출력한다.

를 구하는 것입니다. 즉, 비의 높이는 정해져있지 않습니다. 여러가지 비의 높이 - 경우의 수를 기반으로 안전영역을 구하는 것이죠.

예를 들면 2*2로
50 50
50 50
의 높이로 구성된 지역에 비가 100씩 와버리게 되면 안전영역은 0개가 아닌가요? 그래서 ret은 1이 되면 안된다고 생각하는데 왜 맞게끔 채점이 되는건지 궁금합니다.

>> 이 경우에 비가 100이 되면 0이 맞습니다만 40정도가 오면 1이 됩니다.

 

 


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

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

감사합니다.

강사 큰돌 올림.

 

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

네 그래서 0이 되는 경우가 있기 때문에 ret의 초기값을 1로 설정하면 안되는거 아닌가요?

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

안녕하세요 ㅎㅎ

반드시 안전영역은 1이상이 됩니다.

우리는 비의 높이가 0, 1, 2, 3... 여러가지 경우의 수 중 최대 안전영역을 찾는것이며

이 여러가지 경우의 수에 기반하여 안전영역은 1이상이 되는 것이 자명하기 때문에 초기값은 1이여야 합니다.

 

감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다.

AA66님의 질문에 답변드리기 전에, 유사한 맥락의 질문을 찾아보았습니다. 이러한 질문은 특히 “안전 영역” 문제와 관련하여 자주 등장하는데요, ret 변수의 초기값을 1로 설정했을 때와 0으로 설정했을 때의 결과에 대한 의문점이 주요 관심사입니다.

유사 질문 및 답변 링크:

  1. 2-C 복습 ! - 이 질문에서는 안전영역의 최대값을 구하기 위해 ret을 1로 초기화하는 이유에 대한 설명이 있습니다. 큰돌님께서는 ret을 1로 초기화하는 이유에 대해, 비가 전혀 오지 않았을 경우의 최소 안전 영역 수를 고려하는 것임을 설명하셨습니다. 이는 일반적으로 모든 지역이 잠길 경우(즉, 높이가 아주 높은 비가 왔을 경우)를 제외한 나머지 시나리오를 고려했을 때의 기본값입니다.

또한,

  1. 문제 - 안전영역 질문드립니다. - 여기서도 비슷한 문제에 대한 질문이 있었으며, 구체적으로 비의 높이에 따른 for문 설정의 중요성과 ret 변수의 초기값 설정에 관한 논의가 있었습니다.

요약 및 설명:

이와 같은 문제에서, ret 변수의 초기값을 1로 설정하는 이유는 비가 전혀 오지 않아 모든 지역이 안전 영역으로 남아 있는 경우(즉, 안전 영역의 개수가 최소 1개 이상임을 보장하는 경우)를 포괄하기 위함입니다. 이러한 방식으로 초기화하는 것은 최악의 시나리오(즉, 모든 지역이 물에 잠겨 안전 영역이 0개가 되는 경우)를 제외한 모든 상황에서의 계산을 위한 기본값을 설정하는 것입니다. 하지만, 문제의 특정 조건이나 비가 오는 시나리오의 범위를 고려할 때, ret의 초기값을 조정해야 할 수도 있습니다. 보통 이러한 경우는 문제에서 주어진 조건과 입력값의 범위에 따라 다를 수 있으므로, 문제를 해결하는 데 있어서 문제의 요구사항을 정확히 이해하는 것이 매우 중요합니다.

질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

AA66님의 프로필 이미지
AA66

작성한 질문수

질문하기