본문 바로가기
728x90
반응형

dfs3

[algorithm] 백준 - 사다리 조작 삼성 SW 기출 문제이다. brute force와 구현문제이다. 간단히 설명하자면, 사다리 타기 게임인데, 각 세로줄이 게임을 완료한 후에도 동일한 위치에서 끝나야한다. 참고로 사다리의 가로줄은 맞닿을 수 없다. 사다리 원번호 num, 현재 번호 pnum, 직전에 탄 사다리 좌표 a,b에 대한 자료형을 만들었다. struct width{ int a,b; }; struct ladder{ width w; int number,pnumber; }; 사다리 타기 전, a는 0으로, b는 num, pnum은 num으로 초기화한다. 사다리 이동 방식 1. pnum과 b가 동일하거나, pnum - 1이 b와 동일할 경우, 그리고 직전에 탐색했던 가로 좌표가 아닐 경우, 직전에 탐색했던 a보다는 크지만 그 중에서 가장 .. 2020. 12. 25.
[algorithm] 백준 - 감시 삼성 SW 기출 문제이며, 꽤나 긴 코드를 요구하는 문제이다. dfs로 구현했다. CCTV 종류는 총 5가지로, 다음과 같이 회전할 수 있다. 따라서 방향을 미리 설정해뒀다. pair direction[] = {{-1,0}, {1,0}, {0, -1}, {0, 1}}; pair secondDirection[] = {{{-1,0}, {1,0}},{{0,-1},{0,1}}}; pair thirdDirection[] = {{{-1,0},{0,-1}},{{1,0},{0,1}}, {{1,0},{0,-1}}, {{-1,0},{0,1}}}; tuple fourthDirection[] = {{{-1,0},{0,-1},{1,0}},{{0,-1},{-1,0},{0,1}},{{1,0},{-1,0},{0,1}},{{0,1},.. 2020. 12. 24.
[algorithm] 백준 - 스도쿠 이 문제는 brute force 문제이다. 스도쿠 문제를 풀어봤다면 규칙을 정확히 알고 있을 것이다. 1. 각각의 가로줄과 세로줄에는 1부터 9까지의 숫자가 한 번씩만 나타나야 한다. 2. 굵은 선으로 구분되어 있는 3x3 정사각형 안에도 1부터 9까지의 숫자가 한 번씩만 나타나야 한다. dfs로 풀었다. 1. 숫자를 입력받을 때 가로줄, 세로줄, 3x3 정사각형에 쓰여진 숫자에 대한 기록을 한다. 3x3 정사각형을 위와 같이 나누고 숫자 각각에 대한 기록을 하기 위해서는 sudoku[y][x] 라고 가정했을 때, y / 3 * 3 + x / 3 이라는 식을 통해 정사각형을 나눌 수 있다. sudoku[1][1]일 경우 1 / 3 * 3 + 1 / 3 = 0 * 3 + 0 = 0 sudoku[2][3]일.. 2020. 11. 19.
728x90
반응형