tlsghdus3639   1년 전

질문에 앞서 궁금증에 대해 구글링을 해보았지만, 제 의문을 해결해주는 내용이 없어 다른 분들에게 조언을 구해봅니다.

문제가 발생한 코드는 17번째 줄입니다. 컴파일 오류가 나고 있습니다.

이유는 queue를 구조체로 선언했기 때문이라고 추측됩니다만 이전 문제들에서도 queue를 구조체로 정의해서 푸는 문제들을 많이 봐왔기에 어떤게 문제가 되는지 모르겠습니다.

제 코드 로직을 간단하게 설명하자면

struct data에 현재 좌표, 이전좌표, 합, 몇번 이동했는지 구조체로 정의한 뒤 

모든 점에서 bfs() 함수를 통해 ㅗ,ㅜ,ㅏ,ㅓ를 제외한 나머지 경우에 대한 탐색을 진행하였습니다.

2개의 칸에서 계속 반복되는 경우를 막기위해 이동하는 좌표가 이전 좌표가 아닐 경우에만 이동하게 했습니다.

이후

sol() 함수를 통해 ㅗ,ㅜ,ㅏ,ㅓ의 경우를 탐색하여 ans_sum 변수에 최댓값 갱신을 하고 마지막으로 출력을 해주었습니다.

고견 부탁드립니다.

pill27211   1년 전

std안에 data라는 템플릿이 있는걸로 압니다.

https://en.cppreference.com/w/...

즉, using namespace std;

를 함으로써 data라는 식별자는 std::data가 아닌 data라고도 사용할 수 있게 됨과 동시에, 직접 정의하신 data 구조체와 충돌해 모호함 때문에 컴파일 에러가 발생하는 것 같습니다.

pill27211   1년 전

반대로 using namespace std;

를 명시해주지 않고,

std::queue <data> q;

와 같이 하면 정상적으로 진행 됩니다.

즉, 구조체 이름을 _data 이런식으로 정의 하는 것이 좋아 보입니다.

tlsghdus3639   1년 전

명쾌한 답 감사합니다.

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