문제 출처: www.algospot.com/judge/problem/read/BOGGLE
1. 코드
2. 풀이
이 문제는 반복문으로 풀 수 있겠지만 그렇게 된다면 코드가 굉장히 난잡하게 되거나 알아볼 수 없게 되기 때문에 재귀 함수로 구성하였다. 그리고 조건문은 다음과 같다.
범위 초과할 경우, 이미 확인한 경우, 보드판과 글자가 일치하는지, 그리고 인접한 8칸 검사를 할 때 성공적으로 1이 나오는지 등의 경우를 확인했는데 이 조건들을 생각하는 것이 매우 힘들었다. 그리고 인접한 8칸을 검사할 때는 미리 만들어진 dx와 dy배열의 값을 x와 y에 값을 더함으로써 ↖방향부터 시계 방향으로 검사를 하는 방식으로 되어있다.
기존에 알고 있던 x좌표와 y좌표와 다르다고 느낄 수 있지만 이것은 배열의 좌표 기준이다. 그렇기에 이렇게 구성된다.
3. 느낀 점
printf 대신에 cout를 쓰려고 했지만 이해도가 낮은 건지 무언가 잘못하고 있는지 모르겠지만 cout을 사용하면 계속해서 답이 틀렸다고 나와서 cout대신 printf를 사용했다. 다음에는 조금 더 이해를 보고 cout을 적용해봐야겠다. 그리고 이걸 풀면서 재귀 함수의 공부가 중요하다는 것을 새삼스럽게 깨달았다. 천천히 꾸준히 노력해야겠다.
'컴퓨터 > 알고스팟 알고리즘' 카테고리의 다른 글
알고스팟: LECTURE [C++] (0) | 2021.05.05 |
---|---|
알고스팟 알고리즘: DRAWRECT [C++] (0) | 2021.05.04 |
알고스팟 알고리즘: ENDIANS [C++] (0) | 2021.05.03 |
알고스팟 알고리즘: MERCY [C++] (0) | 2021.05.02 |
알고스팟(Algospot): 피크닉(PICNIC) [C++] (0) | 2020.11.17 |