목록백준/시뮬레이션,구현 (22)
Study hard

https://www.acmicpc.net/problem/21610 21610번: 마법사 상어와 비바라기 마법사 상어는 파이어볼, 토네이도, 파이어스톰, 물복사버그 마법을 할 수 있다. 오늘 새로 배운 마법은 비바라기이다. 비바라기를 시전하면 하늘에 비구름을 만들 수 있다. 오늘은 비바라기 www.acmicpc.net [풀이] 구현한 것(함수) 1. 구름 이동 함수 (d와 s를 받는 즉시 호출) s는 s%N으로 최소화하여 움직이는 시간 줄이기 2. 각 구름에서 비가 내려 구름이 있는 칸의 바구니에 물+1 함수 *문제에서는 이 다음에 구름이 사라지지만, 구현할 때는 다음 함수에서 사용하기 위해 구름 위치 정보를 남겨둠 3. 물복사버그 함수 -> 구름 위치 정보 삭제(p_Cloud) 4. bool Cloud..

https://www.acmicpc.net/problem/21609 21609번: 상어 중학교 상어 중학교의 코딩 동아리에서 게임을 만들었다. 이 게임은 크기가 N×N인 격자에서 진행되고, 초기에 격자의 모든 칸에는 블록이 하나씩 들어있고, 블록은 검은색 블록, 무지개 블록, 일반 블록 www.acmicpc.net [풀이] 구현한 것(함수) 1. 블록그룹 정보 저장 함수(bfs)-> vector에 저장하여 sort 활용하여 가장 큰 그룹 찾기 2. 가장 큰 블록 삭제하는 함수(bfs) 3. 블록들을 밑으로 내리는 함수 4. 시계 반대 방향으로 90도 돌리는 함수(바깥 -> 안 순서로 돌리기) #include #include //sort #include //memset #include #include //..

https://www.acmicpc.net/problem/21608 21608번: 상어 초등학교 상어 초등학교에는 교실이 하나 있고, 교실은 N×N 크기의 격자로 나타낼 수 있다. 학교에 다니는 학생의 수는 N2명이다. 오늘은 모든 학생의 자리를 정하는 날이다. 학생은 1번부터 N2번까지 번호 www.acmicpc.net [풀이] |r1 - r2| + |c1 - c2| = 1을 만족하는 두 칸 (r1, c1)과 (r2, c2)를 인접한 칸이라고 한다. => 어떤 칸의 상하좌우에 있는 칸이 인접한 칸이다. 학생의 번호와 그 학생이 좋아하는 학생들의 번호를 저장하는 struct 자료구조를 만들어 입력을 받아 순서대로 어디에 자리를 배치할지 탐색한다. 빈칸들마다 주변에 좋아하는 학생 수, 빈칸 수를 저장하여 ..

www.acmicpc.net/problem/20061 20061번: 모노미노도미노 2 모노미노도미노는 아래와 같이 생긴 보드에서 진행되는 게임이다. 보드는 빨간색 보드, 파란색 보드, 초록색 보드가 그림과 같이 붙어있는 형태이다. 게임에서 사용하는 좌표 (x, y)에서 x는 행, www.acmicpc.net [풀이] 문제에 적힌 조건들을 구현하는 문제였다. 빨간색 보드와 초록색, 파란색 보드를 모두 한 배열로 구현하지 않고, 6*4초록색보드 배열과 4*6파란색보드 배열을 따로 만들어 사용했다. 블록을 놓은 위치를 받아 먼저 초록색 보드와 파란색 보드에 블록을 옮겨줬다. 그리고 while문을 두 개 중첩하여 먼저 해이나 열이 타일로 가득 찬 경우가 없을 때까지 점수를 획득하도록 하였다. 꽉찬 행이나 열이 ..

www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net [풀이] 치킨집 M개 조합을 구하여 각각 집에 대해 가장 작은 치킨거리를 더하는 문제였다. 처음에 치킨집 M개 위치를 dfs조합으로 구하고, bfs로 각 집에서 시작하여 가장 가까운 치킨집을 구하려고 했는데 시간초과가 나왔다.. 알고보니 각각 집에 대해서 M개의 치킨집까지의 치킨거리를 모두 구하여 가장 작은 수를 더해주면 되는 거였다..! #include #include #include #..

www.acmicpc.net/problem/15685 15685번: 드래곤 커브 첫째 줄에 드래곤 커브의 개수 N(1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 드래곤 커브의 정보가 주어진다. 드래곤 커브의 정보는 네 정수 x, y, d, g로 이루어져 있다. x와 y는 드래곤 커 www.acmicpc.net [풀이] 처음 문제를 봤을 때 참 난감한 문제였다.. 시뮬레이션 구현 문제는 규칙이 있기 마련이기에 손으로 그려보면서 규칙을 찾았다. 먼저 각 방향이 다음세대를 그릴 때 어떻게 바뀌는지 찾았다. 방향은 아래와 같이 바뀐다. 0 → 1 (→ ↑) 1 → 2 (↑ ←) 2 → 3 (← ↓) 3 → 0 (↓ →) 그리고 다음세대에 새로 그려지는 드래곤 커브가 어떤 순서로 그려지는 지 찾았다..