목록문제풀이 (155)
말랑한 하루
[ 문제 ] 1~100까지의 게임판에 뱀이나 사다리가 무작위로 놓여져있을 때, 가장최소치로 100까지가는 방법을 구하시오 [ 조건 ] (1) 주사위는 1~6까지의 수 (2) 뱀이나 사다리가있으면 타고 이동할것, 단 시작부분과 끝부분에는 존재하지않음 (3) 범위는 1~100 [ 순서도 ] (1) 입력받은 뱀 또는 사다리의 정보를 저장하는 개체생성 (2) 게임판에 최소로 도달한 값을 저장하는 개체생성 (3) 주사위의 최대수는 6이고 게임판시작부분이 1인것을 유념하고 최소값을 저장하며 bfs시작 (4) 도달한 곳에 뱀 또는 사다리가 존재한다면, 도착한 지점과 이동후 지점의 값 갱신하며 bfs (5) 100에 도달하였어도 최소치가 아닐 수 있으므로 queue는 끝내지않고 최소값만 저장 [ 핵심소스코드 / C++..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/pU7kS/btqBMN4XTnA/UxKBa4aLcahFYLYYk0s4fK/img.png)
[문제] N개의 퀸이 서로 공격할 수 없게 만드는 경우의 수 [조건] 퀸은 으로 공격 가능하므로 그 경우를 제외한 조합을 찾아가면된다. [해결방법] 백트레킹 활용 DFS를 활용해서 N개의 퀸이 서로 같은 라인이거나 대각선에 존재하지 않을 때를 찾아가면된다 위 그림과같이 퀸이 놓일수 있는 1차원 배열 map[]이 존재할 때 현재의 map과 이전~현재까지의 map을 비교하여 같은라인인지 map[now] == map[yet] 대각선인지 map[now]-map[yet] == now-yet 판별해주면된다 [전체소스코드] #define _CRT_SECUORE_NO_WARNINGS #include #include #pragma warning(disable:4996) using namespace std; int map..