[algorithm] 백준 - 드래곤 커브
이 문제는 삼성 SW 기출 문제이고, simulation 문제이다. 1. 시작 점 (x, y) 2. 시작 방향 (direction) struct point{ int x,y,direction; }; n세대는 n - 1 세대 드래곤 커브 끝점을 기준으로 시계 방향으로 90도 회전시킨다음 끝점에 붙인 것이다. 그렇다면 점들의 위치는 어떤 방식으로 정해지는 건지 궁금하여 점이 변하는 방향을 따져봤다. 0: x좌표가 증가하는 방향 (→) 1: y좌표가 감소하는 방향 (↑) 2: x좌표가 감소하는 방향 (←) 3: y좌표가 증가하는 방향 (↓) pair direct[]={{1,0},{0,-1},{-1,0},{0,1}}; 1세대 → / ↑ 0 / 1 2세대 → ↑ / ← ↑ 0 1 / 2 1 3세대 → ↑ ← ↑ /..
2020. 12. 27.
[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.