작성
·
166
0
스크린을 배열로 만들어서 바구니가 있는 곳은 1, 없는 곳은 0으로 두고, 바구니가 움직이지 않아도 되는 경우, 사과가 바구니 오른쪽에 떨어지는 경우, 왼쪽에 떨어지는 경우로 나누어서 만들어봤습니다!
가독성이 떨어지지만 한 번 봐주시면 감사하겠습니다.
답변 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 인턴입니다.
어 나야님, 지금 상황에서 제가 도움을 드릴 수 있는 구체적인 정보나 코드의 오류에 대한 피드백이 정보에 포함되어 있지 않습니다.
그러나, 문제 해결을 위해 다음과 같은 일반적인 접근방법을 제안드립니다:
- 코드의 로직을 한 번 더 체크하여 예외 상황이 없는지 검토해보세요. 예를 들어, 바구니의 크기나 움직임의 제한 조건을 올바르게 처리했는지 확인해보세요.
- 사과가 떨어지는 위치를 정확히 계산했는지, 그리고 그에 따른 바구니의 이동량을 정확히 계산했는지 다시 한번 검토해보세요.
- 배열의 인덱스를 잘못 사용하여 원하는 값에 접근하지 못하는 경우도 종종 있으므로 배열과 관련된 부분을 주의 깊게 살펴보세요.
- 디버깅을 위해 특정 입력 값에 대한 프로그램의 동작 과정을 단계별로 추적해보는 것도 유용합니다. 이를 통해 예상치 못한 동작이 발생하는 부분을 발견할 수 있을 거예요.
코드 해결에 있어 구체적인 단계에서 막히신다면, 해당 부분의 코드와 함께 다시 문의해주세요. 그럼 더 상세한 도움을 드릴 수 있을 것입니다.
감사합니다 항상 강의 잘 듣고있습니다!