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

어 나야님의 프로필 이미지

작성한 질문수

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

2-F

2-F 어느부분이 틀렸는지 모르겠습니다!

작성

·

162

0

스크린을 배열로 만들어서 바구니가 있는 곳은 1, 없는 곳은 0으로 두고, 바구니가 움직이지 않아도 되는 경우, 사과가 바구니 오른쪽에 떨어지는 경우, 왼쪽에 떨어지는 경우로 나누어서 만들어봤습니다!

가독성이 떨어지지만 한 번 봐주시면 감사하겠습니다.

http://boj.kr/e2e2ca2d3a5d4f728a8ca93048c010f4

답변 3

1

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

안녕하세요 어나야님ㅎㅎ

jwoo님이 잘 설명해주셨네요 ㅎ

반례는 다음과 같습니다.

5 3
3
4
5
4

답 : 2
수강생님 : 1 

 

jwoo님 감사드립니다. ㅎㅎ

감사합니다.

어 나야님의 프로필 이미지
어 나야
질문자

감사합니다 항상 강의 잘 듣고있습니다!

1

안녕하세요! 공유된 코드를 보고 b를 출력해봤는데,

            for(int k=0;k<M;k++)
            {
                b[cx+k]=0;//바구니 위치 초기화
                b[a-1-k]=1;//바구니 위치 넣기 
            }

이런 초기화 식 때문에 오류가 나는 것 같습니다!

만약 스크린 크기가 3이고 cx가 0이고, 3까지 이동해야 하는 상황이라면

b[0] = 0, b[3] = 1,

b[1] = 0, b[2] = 1,

b[2] = 0, b[1] = 1이 실행되어 바구니에 구멍이 나게 되는 것 같습니다.

그래서 입력으로

5 3

3

4

5

4

이런 입력이 주어지면 정답은 2를 반환해야 하는데, 공유해주신 코드로는 1을 반환하여 오답이 되는 것 같습니다! a를 입력받는 for문 사이에

                for(auto i : b) {
    		cout << i << " ";
		}
		cout << "\n";

이런 바구니를 출력하는 코드로 확인해보실 수 있을 것 같네요!

어 나야님의 프로필 이미지
어 나야
질문자

제 질문에 시간을 할애해주신것만으로 감사한데 친절한 설명까지 해주시니 어찌할 바를 모르겠습니다 완벽히 이해했습니다 감사합니다!!

0

안녕하세요, 인프런 AI 인턴입니다.
어 나야님, 지금 상황에서 제가 도움을 드릴 수 있는 구체적인 정보나 코드의 오류에 대한 피드백이 정보에 포함되어 있지 않습니다.

그러나, 문제 해결을 위해 다음과 같은 일반적인 접근방법을 제안드립니다:
- 코드의 로직을 한 번 더 체크하여 예외 상황이 없는지 검토해보세요. 예를 들어, 바구니의 크기나 움직임의 제한 조건을 올바르게 처리했는지 확인해보세요.
- 사과가 떨어지는 위치를 정확히 계산했는지, 그리고 그에 따른 바구니의 이동량을 정확히 계산했는지 다시 한번 검토해보세요.
- 배열의 인덱스를 잘못 사용하여 원하는 값에 접근하지 못하는 경우도 종종 있으므로 배열과 관련된 부분을 주의 깊게 살펴보세요.
- 디버깅을 위해 특정 입력 값에 대한 프로그램의 동작 과정을 단계별로 추적해보는 것도 유용합니다. 이를 통해 예상치 못한 동작이 발생하는 부분을 발견할 수 있을 거예요.

코드 해결에 있어 구체적인 단계에서 막히신다면, 해당 부분의 코드와 함께 다시 문의해주세요. 그럼 더 상세한 도움을 드릴 수 있을 것입니다.