hik3562   4년 전

안녕하세요!

이 문제를 읽다가 문득 든 의문이

상,하,좌,우 값을 더해준다면 어느 위치에는 초기값이 있어야 하지 않나요?

예를들어서, 0,0 에서부터 시작하여 벽이 있는 경우 북+2 남 +8 서 +1 동 +4 가중치를 더한다.

제가 뭘 잘못 이해하고 있는걸까요.

초기값이 없어서 혼란스러워 질문드립니다.

djm03178   4년 전

각 칸마다 별개로 값이 존재하는 것이고, 초기값에 대한 언급이 따로 없으므로 주변에 세워진 벽에 의해서만 값이 결정되는 것임을 유추할 수 있습니다. 범위가 0에서 15 사이로 나타난다고 한 것도 이를 뒷받침합니다. 즉, 각 칸의 초기값은 0이라고 생각해도 됩니다.

ekdya93   4년 전

문제를 잘 읽어보시면

벽이 있는 경우 북+2 남 +8 서 +1 동 +4 가중치를 더한다.

라고 되어있는데

서쪽과 동쪽 두 방향에만 벽이 있는 칸일 경우   서 +1 동 +4 = 5로 나타내는것입니다.  이를 2진수로 나타내면 0101 이 되겠네요

만약 상하좌우가 전부 막힌 칸이라면   북+2 남 +8 서 +1 동 +4  = 15 가 될것이고 이를 2진수로 표현하면 1111이 될겁니다.

완전탐색을 하실 때 2진수로 표현한 String의 index의 위치에 0인지 1인지를 판단해서 탐색이 가능한지 불가능한지 확인하면서 탐색을 하시면 문제를 수월하게 해결할 수 있을겁니다.

댓글을 작성하려면 로그인해야 합니다.