해결된 질문
작성
·
14
0
http://boj.kr/e469d016f48d45fdba8b5dc64066e87c
문제풀이 로직은 다음과 같습니다.
1. 수빈이가 짝수 시간에는 0번 s_visited에 홀수시간에 도달한 장소는 1번 s_visited에 저장을 합니다.
동생이 이동하면서 수빈이와 같은 시간에 정확히 도착하거나 2만큼 차이가 난다면 바로 출력하게끔했는데 17 5 입력이 자꾸 4가 아닌 6이 나오더라고요
답변 2
0
안녕하세요 현우님 ㅎㅎ
if(0<=next_pos&&next_pos<=MAX_LEN){
-> 배열의 끝을 참조할 수 있게 설계되어있습니다.
s_visited[t][next]>visited[next]
이거는 수빈이가 늦게 도착하는 경우의 수 아닌가요?
s_visited[t][next]-visited[next]%2==0
이부분 이걸 의도하신게 아닌가요?
(s_visited[t][next]-visited[next])%2==0
연산자 우선순위 때문에 % 연산이 먼저 실행되게 됩니다.
괄호를 치셔야 합니다.
일단 이런 부분들 부터 고쳐보시겠어요?
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다.
김현우님께서 제시하신 문제는 수빈이와 동생이 서로 만날 수 있는 시점을 구하는 것과 관련된 것으로 보입니다. 이러한 유형의 문제에서는 수빈이의 위치와 시간이 홀수인 경우와 짝수인 경우를 나누어 처리하는 것이 중요한 포인트입니다.
현재 사용하신 로직에서 동생이 이동하면서 수빈이가 같은 시간에 정확히 도착하거나, 2만큼의 시간 차이가 나는 경우를 다룬다고 하셨는데, 이 부분에서 몇 가지 확인이 필요합니다:
짝수와 홀수 시간의 구분: 수빈이의 이동 경로에서 짝수 시간과 홀수 시간에 도달 가능한 위치를 각각 s_visited
배열의 0번과 1번 인덱스에 나누어 처리한 것은 적절한 접근입니다. 이를 통해 동생과 수빈이가 같은 시간에 그 위치에 도달할 수 있는지를 보다 쉽게 확인할 수 있습니다.
시간 차의 조건 확인: 동생이 이동하면서 수빈이가 같은 시간에 도달하거나 2만큼 차이가 나는 경우에 결과를 출력하는 부분이 체계적으로 구현되어야 합니다. 그러나, 17과 5의 입력으로 6이 나온다는 문제는 아마도 시간 차이를 계산하는 로직이나, 두 배열을 비교하는 과정에서의 오류로 보입니다.
이와 관련하여 비슷한 문제의 해결책을 찾을 수 있는 다음의 답변들을 참고해 보세요:
visited
배열을 2차원으로 사용하는 방식에 대한 논의와 이 방법이 문제 해결에 어떻게 기여하는지를 설명합니다.이 두 게시물을 통해 로직을 어떻게 개선할 수 있는지, 혹은 잘못된 부분을 어떻게 수정할 수 있을지에 대한 아이디어를 얻을 수 있을 것입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.