본문 바로가기
728x90
반응형

삼성SW2

[algorithm] 백준 - 미세먼지 안녕! 이 문제는 삼성 SW 기출 문제이다. 시뮬레이션이다. 총 두가지 연산이 요구된다. 미세먼지 확산 expand() 1. 네방향 확산 인접한 방향에 -1 혹은 칸이 있는지 확인, 있다면 그 쪽은 확산이 안된다. 2. (r,c)에 위치한 값 / 5로 확산된다. 3. (r,c)에는 (r,c)에 위치한 값 - (r,c)에 위치한 값 / 5 * 확산되는 방향 개수로 설정된다. 확산시킬 때 유의할 점은 확산되는 값이 변하기 전 값에서 계산되어야 하므로 원본 값을 변환시키는 것이 아닌 확산되어 더해지는 값과 확산해서 없어지는 미세먼지 값을 따로 저장해두고 원본 값에 반영하는 형태로 구현해야한다. void expand(){ int spreadNum = 0; int weight[50][50]; for(int i = 0; .. 2020. 12. 29.
[algorithm] 백준 - 아기상어 이 문제는 삼성 SW 기출 문제이다. 먹을 수 있는 물고기가 1마리라면, 그 물고기를 먹으러 간다. 먹을 수 있는 물고기가 1마리보다 많다면, 거리가 가장 가까운 물고기를 먹으러 간다. 1. 거리는 아기 상어가 있는 칸에서 물고기가 있는 칸으로 이동할 때, 지나야하는 칸의 개수의 최솟값이다. 2. 거리가 가까운 물고기가 많다면, 가장 위에 있는 물고기, 그러한 물고기가 여러마리라면, 가장 왼쪽에 있는 물고기를 먹는다. 물고기를 잡아먹는 시간을 최소로 해야하므로 bfs로 탐색했다. 가장 위에 있고 가장 왼쪽에 있는 물고기를 먹어야하므로, bfs로 탐색을 한 후 가장 위에 있고 가장 왼쪽에 있는 물고기를 찾아 그 칸으로 이동시킨다. 탐색은 더이상 먹을 물고기가 없을 때까지 반복한다. while(1){ bfs.. 2020. 12. 28.
728x90
반응형