본문 바로가기
728x90
반응형

백준13

[algorithm] 백준 - 낚시왕 삼성 SW기출 문제이자 시뮬레이션이며, 시간 제한이 1초라는 것을 유의해야한다 상어의 크기는 모두 다 다르다는 특징이 있다. 격자의 크기는 R,C 상어의 수 m, 상어 위치 r,c 속력 s ,이동방향 d, 크기 z이다. 낚시왕이 1번열의 한칸 왼쪽에 있다. 가장 오른쪽 열에 위치하면 이동을 멈춘다. 1초 동안 아래 연산이 이루어진다. 1. 낚시왕이 오른쪽으로 한칸 이동한다. 낚시왕이 낚시를 끝낼 때까지 연산이 이루어져야하므로 while문 안에서 아래의 작업을 수행한다. int king = 0, answer = 0; while(king != C){ king++; answer += catchShark(king); moveShark(); eatShark(); } 2. 낚시왕이 위치해있는 열에서 가장 가까운 상.. 2020. 12. 29.
[algorithm] 백준 - 아기상어 이 문제는 삼성 SW 기출 문제이다. 먹을 수 있는 물고기가 1마리라면, 그 물고기를 먹으러 간다. 먹을 수 있는 물고기가 1마리보다 많다면, 거리가 가장 가까운 물고기를 먹으러 간다. 1. 거리는 아기 상어가 있는 칸에서 물고기가 있는 칸으로 이동할 때, 지나야하는 칸의 개수의 최솟값이다. 2. 거리가 가까운 물고기가 많다면, 가장 위에 있는 물고기, 그러한 물고기가 여러마리라면, 가장 왼쪽에 있는 물고기를 먹는다. 물고기를 잡아먹는 시간을 최소로 해야하므로 bfs로 탐색했다. 가장 위에 있고 가장 왼쪽에 있는 물고기를 먹어야하므로, bfs로 탐색을 한 후 가장 위에 있고 가장 왼쪽에 있는 물고기를 찾아 그 칸으로 이동시킨다. 탐색은 더이상 먹을 물고기가 없을 때까지 반복한다. while(1){ bfs.. 2020. 12. 28.
[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.
728x90
반응형