Algorithm & Data Structure

[BOJ x SWEA] 14890. 경사로

2020. 10. 16. 04:11

www.acmicpc.net/problem/14890

 

14890번: 경사로

첫째 줄에 N (2 ≤ N ≤ 100)과 L (1 ≤ L ≤ N)이 주어진다. 둘째 줄부터 N개의 줄에 지도가 주어진다. 각 칸의 높이는 10보다 작거나 같은 자연수이다.

www.acmicpc.net

1. row 별로 한 행씩 통행로 검사

2. col 을 row로 바꾸고 한 행씩 통행로 검사

 

'Algorithm & Data Structure > SWEA' 카테고리의 다른 글

[BOJ x SWEA] 13458. 시험 감독  (0) 2020.10.16
[SWEA] 14502. 연구소  (0) 2020.10.13
[SWEA] 12100. 2048 (Easy)  (0) 2020.10.12
[SWEA] 19235. 모노미노도미노  (0) 2020.10.11
[백준xSWEA] 13460. 구슬 탈출 2 (review)  (0) 2020.10.09

[BOJ x SWEA] 13458. 시험 감독

2020. 10. 16. 04:07

www.acmicpc.net/problem/13458

 

13458번: 시험 감독

첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다. 셋째 줄에는 B와 C가 주어진다. (1 ≤ B, C ≤ 1,000,000)

www.acmicpc.net

각종 반례를 생각해서 풀어야 하는 수학 문제 입니다.

 

'Algorithm & Data Structure > SWEA' 카테고리의 다른 글

[BOJ x SWEA] 14890. 경사로  (0) 2020.10.16
[SWEA] 14502. 연구소  (0) 2020.10.13
[SWEA] 12100. 2048 (Easy)  (0) 2020.10.12
[SWEA] 19235. 모노미노도미노  (0) 2020.10.11
[백준xSWEA] 13460. 구슬 탈출 2 (review)  (0) 2020.10.09

[SWEA] 14502. 연구소

2020. 10. 13. 16:23

www.acmicpc.net/problem/14502

[14502번: 연구소

인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크�

www.acmicpc.net](https://www.acmicpc.net/problem/14502)

1. 백트래킹으로 벽세우기

2. BFS로 바이러스 전파

3. 최댓값 갱신

[SWEA] 12100. 2048 (Easy)

2020. 10. 12. 18:10

www.acmicpc.net/problem/12100

 

12100번: 2048 (Easy)

첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2

www.acmicpc.net

상하좌우 움직여서 블록합치는 시뮬레이션 게임입니다.

각 방향마다 모든 경우의 수를 헤아려 줘야 합니다.

그 과정에서 원본 맵과 사용한 맵을 계속해서 백업하는것이 중요합니다.

또 주의할 점은 블록들은 한번 이동할때 한번만 합쳐질 수 있는 것에 주의 합니다.

 

www.acmicpc.net/problem/19235

 

19235번: 모노미노도미노

모노미노도미노는 아래와 같이 생긴 보드에서 진행되는 게임이다. 보드는 빨간색 보드, 파란색 보드, 초록색 보드가 그림과 같이 붙어있는 형태이다. 게임에서 사용하는 좌표 (x, y)에서 x는 행,

www.acmicpc.net

까다로운 시뮬레이션 문제입니다.

블록을 입력받아 넣는 insert()

입력후 삭제하는 delete()

blue부분 움직이는 blueMove()

green부분 움직이는 greenMove()

블록타입따라 블록 이동하는  moveTypeOne,Two,Three()

함수를 사용하였습니다.

 

주의할 점은 블록이 쌓였을때 모두 제거한 뒤 이동시켜줘야 합니다.

연한 부분에 블록이 있는 경우는 밑에서 부터 한줄씩 제거해주는 방법을 사용했습니다.

 

블록을 insert 할때 블록의 위치를 Queue에 담고

blueMove, greenMove 할때 마다 Queue를 갱신해줘야 합니다.

 

블록을 밑으로 움직일때 해당 블록의 타입이 바뀌었는지 확인하고, insert와 동일하게 해당 블록의 타입대로 이동시켜야 합니다.

따라서 move할때 해당 블록의 타입이 바뀌었는지 확인해야합니다.

insert와 move의 차이점은 원레 차지하던 자리를 0으로 지워주는 차이가 있습니다.

 

또 주의할점은 블록을 insert할 때 뿐만 아니라, 블록의 연쇄작용이 일어날 수 있으므로 delete의 리턴값이 0일때까지 삭제 시켜봐야합니다.

중간중간 정확한 출력이 나오는지 검사하면서 진행하는게 좋습니다.

 

www.acmicpc.net/problem/13460

 

13460번: 구슬 탈출 2

첫 번째 줄에는 보드의 세로, 가로 크기를 의미하는 두 정수 N, M (3 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄에 보드의 모양을 나타내는 길이 M의 문자열이 주어진다. 이 문자열은 '.', '#', 'O', 'R', 'B'

www.acmicpc.net

BFS와 Bruteforce 를 사용한 시뮬레이션 문제입니다.

빨간구슬과 파란구슬의 인덱스, 카운트 정보를 담는 클래스를 사용합니다.

넓이우선탐색을 통해 탐색을 하면서 모든 경우의 수를 체크합니다.

횟수가 10 이상이면 끝내야 합니다.

자세한 설명은 주석처리 했습니다.

 

[백준] 2563. 색종이

2020. 10. 6. 10:36

www.acmicpc.net/problem/2563

 

2563번: 색종이

첫째 줄에 색종이의 수가 주어진다. 이어 둘째 줄부터 한 줄에 하나씩 색종이를 붙인 위치가 주어진다. 색종이를 붙인 위치는 두 개의 자연수로 주어지는데 첫 번째 자연수는 색종이의 왼쪽 변��

www.acmicpc.net

100*100 격자 맵에 색종이가 있는 부분을 1로 칠해주고 칠해진 부분을 카운트 해주면 되는 문제였습니다.

 

'Algorithm & Data Structure > BOJ' 카테고리의 다른 글

[백준] 2947. 나무 조각  (0) 2020.10.04
[백준] 2161. 카드1  (0) 2020.10.04
[백준] 3085. 사탕 게임  (0) 2020.09.23
[백준] 2638. 치즈  (0) 2020.09.22
[백준] 2636. 치즈  (0) 2020.09.18

[백준] 2947. 나무 조각

2020. 10. 4. 15:52

www.acmicpc.net/problem/2947

 

2947번: 나무 조각

첫째 줄에 조각에 쓰여 있는 수가 순서대로 주어진다. 숫자는 1보다 크거나 같고, 5보다 작거나 같으며, 중복되지 않는다. 처음 순서는 1, 2, 3, 4, 5가 아니다.

www.acmicpc.net

swap을 사용하는 간단한 시뮬레이션 문제였습니다.

주어진 순서에따라 스왑을 구현하면 됩니다.

 

'Algorithm & Data Structure > BOJ' 카테고리의 다른 글

[백준] 2563. 색종이  (0) 2020.10.06
[백준] 2161. 카드1  (0) 2020.10.04
[백준] 3085. 사탕 게임  (0) 2020.09.23
[백준] 2638. 치즈  (0) 2020.09.22
[백준] 2636. 치즈  (0) 2020.09.18

+ Recent posts