작성
·
157
0
안녕하세요, 큰돌님!
16235 문제를 풀던 중 아래 코드가 왜 안되는지 궁금합니다.
맵에 각각 벡터를 넣지 않고 총 살아있는 나무를 넣는 우선순위 큐를 사용해서 구현 해보았습니다.
우선순위 큐는 나이를 기준으로 오름차순 합니다.
https://www.acmicpc.net/source/72058303
반례는 이것인데, 제 논리 대로라면 된다고 생각하는데 여기서 잘못된 답을 뱉어내네요...
5 2 7
2 3 2 3 2
2 3 2 3 2
2 3 2 3 2
2 3 2 3 2
2 3 2 3 2
2 1 3
3 2 3
답 : 71
답변 2
0
안녕하세요 동훈님 ㅎㅎ
처음부터 좀 잘못된 것 같은데요.
해당입력을 넣었을 때
양분배열이 봄여름가을겨울을 한번지나고 나오는 수는
다음과 같은게 아니라.
7 5 7 8 7
7 8 4 8 7
7 8 7 8 7
7 8 7 8 7
7 8 7 8 7
이렇게 나와야 정상입니다.
7 8 7 8 7
4 8 7 8 7
7 5 7 8 7
7 8 7 8 7
7 8 7 8 7
for(int i = 0; i < k; i++){
springSummer();fall(); winter();
cout << "START\n";
for(int i = 0; i < n; i++){
for(int j = 0; j < n; j++){
cout << yangbun[i][j] << " ";
}
cout << "\n";
}
}
이런식으로 넣어서 확인해보시겠어요?
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다.
질문 주신 내용을 바탕으로 말씀드리겠습니다. 큰돌님께서 제시하신 코드와 반례로 주신 상황을 보면, 우선순위 큐를 사용하실 때 나무의 나이만 고려하고 계신 것 같아요. 그러나 나무의 위치도 매우 중요하므로 위치 정보와 더불어 나이를 함께 고려해야 합니다.
또한, 벡터 대신 우선순위 큐를 사용하는 방식으로 구현할 때는, 봄에 나이가 어린 나무부터 양분을 먹고, 죽은 나무들이 양분으로 변하는 과정을 올바르게 구현하셔야 합니다. 나무가 자라나는 방식이나 계절의 순환과 같은 요소들도 정확히 반영하셨는지 확인이 필요합니다.
문제에서 요구하는 로직을 정확히 구현했는지, 조건문이나 반복문을 통해 모든 상황을 잘 처리했는지, 우선순위 큐를 올바르게 사용하였는지 다시 한 번 살펴보시고, 문제의 조건과 제약사항을 체크해 보시길 권장드립니다.
코드에 대한 구체적인 분석과 수정이 필요하시다면, 해당 프로그래밍 사이트의 질문 게시판이나 다른 개발자 커뮤니티에 질문을 올려서 도움을 받아보시는 것도 좋은 방법입니다.
원하는 해결책을 찾으시길 바라며, 추가 질문이 있으시면 도움을 드릴 준비가 되어 있습니다. 화이팅하세요!
덕분에 해결 했습니다. 감사합니다!
y,x 값을 잘 못 넣었었네요 ㅜㅜ