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

땅콩땡콩님의 프로필 이미지
땅콩땡콩

작성한 질문수

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

4-H

4-H 비트마스킹 질문 있습니다.

해결된 질문

작성

·

161

·

수정됨

0

안녕하세요, 강의 잘 듣고 있습니다.

문제를 읽고, 스스로 짜보고 있습니다.

그런데 비트마스킹 부분에서 제가 생각한 것처럼 동작하지 않아 무슨 부분이 문제인지 궁금합니다.

아무리 print를 찍어서 찾아보려고 해도 찾지 못해 질문드립니다. 

문제 부분

// DFS 함수 (18, 19번째 줄)

if(a[y][x] & (1 << i)) continue;

_ret += dfs(ny, nx);

 http://boj.kr/b423ee8869844758a31b0c3c5d67fd49

답변 1

0

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

안녕하세요 땅콩님ㅎㅎ

int dy[4] = {0, 1, 0, -1};
int dx[4] = {-1, 0, 1, 0};

이부분이 잘못 된것 같습니다.

문제에서 주어진 성곽 그잡채를 기반으로 만들어야 합니다.

문제를 보시면...

벽에 대한 정보는 한 정수로 주어지는데, 서쪽에 벽이 있을 때는 1을, 북쪽에 벽이 있을 때는 2를, 동쪽에 벽이 있을 때는 4를, 남쪽에 벽이 있을 때는 8을 더한 값이 주어진다.

 

라고 되어있기 때문에 해당 문제지문에 맞춰서 dy, dx를 설정해주어야 합니다.

const int dy[] = {0, -1, 0, 1}; 
const int dx[] = {-1, 0, 1, 0}; 

이렇게 해보심이 어떨까요?



또 질문 있으시면 언제든지 질문 부탁드립니다.

좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.


땅콩땡콩님의 프로필 이미지
땅콩땡콩
질문자

큰돌님 감사합니다.

저 부분이 틀린 거를 인지하지 못하고 있었네요.

땅콩땡콩님의 프로필 이미지
땅콩땡콩

작성한 질문수

질문하기