백준 25

[BOJ] - 14501. 퇴사

[URL] https://www.acmicpc.net/problem/14501 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net [풀이 과정] 1. 조건에 맞게 기본 DFS 시전 2. sum += PAY[pos]; 3. pos: 1~ N까지 다 검사 후 sum 중 최대값 출력 [소스 코드]123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354// 4. 퇴사// https://www.acmicpc.net/problem/14501 #include #include using namespace std; int N;int Time[16]..

Algorithm/백준 2019.08.21

[BOJ] - 2468. 안전 영역

[URL] https://www.acmicpc.net/problem/2468 2468번: 안전 영역 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 안전한 영역이 최대로 몇 개가 만들어 지는 지를 조사하려고 한다. 이때, 문제를 간단하게 하기 위하여, 장마철에 내리는 비의 양에 따라 일정한 높이 이하의 모든 지점은 물에 잠긴다고 가정한다. 어떤 지역의 높이 정보는 행과 열의 크기가 각각 N인 2차원 배열 형태로 주어 www.acmicpc.net [풀이 과정] 1. 입력 2. 가능한 경우 (물의 높이: 1 ~ 지면의 최대 높이까지만!) 3. 맵 복사 4. 물 퍼트리기 ..

Algorithm/백준 2019.08.20

[BOJ] - 17281. 야구

[URL] https://www.acmicpc.net/problem/17281 17281번: ⚾ ⚾는 9명으로 이루어진 두 팀이 공격과 수비를 번갈아 하는 게임이다. 하나의 이닝은 공격과 수비로 이루어져 있고, 총 N이닝동안 게임을 진행해야 한다. 한 이닝에 3아웃이 발생하면 이닝이 종료되고, 두 팀이 공격과 수비를 서로 바꾼다. 두 팀은 경기가 시작하기 전까지 타순(타자가 타석에 서는 순서)을 정해야 하고, 경기 중에는 타순을 변경할 수 없다. 9번 타자까지 공을 쳤는데 3아웃이 발생하지 않은 상태면 이닝은 끝나지 않고, 1번 타자가 다시 타석에 www.acmicpc.net [풀이 과정] * 순열(완전 탐색) + 시뮬레이션 1. 가능한 모든 후보 탐색 4번째 타순은 1번 타자로 고정 따라서, 전체 경우..

Algorithm/백준 2019.08.13

[BOJ] - 3190. 뱀

[URL] https://www.acmicpc.net/problem/3190 3190번: 뱀 문제 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임은 NxN 정사각 보드위에서 진행되고, 몇몇 칸에는 사과가 놓여져 있다. 보드의 상하좌우 끝에 벽이 있다. 게임이 시작할때 뱀은 맨위 맨좌측에 위치하고 뱀의 길이는 1 이다. 뱀은 처음에 오른쪽을 향한다. 뱀은 매 초마다 이동을 하는데 다음과 같은 규칙을 따 www.acmicpc.net [풀이 과정] * 시뮬레이션 뱀의 머리랑 꼬리에만 신경 쓰자 뱀의 전체는 check[][]배열에 넣어주자. : 이동 가능한지 판단 1..

Algorithm/백준 2019.08.05

[BOJ] - 17143. 낚시왕

[URL] https://www.acmicpc.net/problem/17143 17143번: 낚시왕 낚시왕이 상어 낚시를 하는 곳은 크기가 R×C인 격자판으로 나타낼 수 있다. 격자판의 각 칸은 (r, c)로 나타낼 수 있다. r은 행, c는 열이고, (R, C)는 아래 그림에서 가장 오른쪽 아래에 있는 칸이다. 칸에는 상어가 최대 한 마리 들어있을 수 있다. 상어는 크기와 속도를 가지고 있다. 낚시왕은 가장 처음에 1번 열의 한 칸 왼쪽에 있다. 다음은 1초 동안 일어나는 일이며, 아래 적힌 순서대로 일어난다. 낚시왕은 가장 오른쪽 열의 오른쪽 칸에 www.acmicpc.net [풀이 과정] 시뮬레이션 문제 input()을 통하여 입력받고 입력받은 값을 벡터에 저장 이 후 king(낚시왕)은 총 C번 ..

Algorithm/백준 2019.07.31

17140. - 이차원 배열과 연산

[URL] https://www.acmicpc.net/problem/17140 17140번: 이차원 배열과 연산 첫째 줄에 r, c, k가 주어진다. (1 ≤ r, c, k ≤ 100) 둘째 줄부터 3개의 줄에 배열 A에 들어있는 수가 주어진다. 배열 A에 들어있는 수는 100보다 작거나 같은 자연수이다. www.acmicpc.net [풀이 과정] * 시뮬레이션 1. 1. input(); a[][]입력받는다. 최초 사이즈 3x3, Rsize = 3, Csize =3; 2. 시간 계산 while문 조건: a[r-1][c-1] ==k인가? 맞으면 시간(time) 리턴, 틀리면 계산 시작 3. 계산 우선Rsize Csize비교 3-1. r연산 각 행 1) calc[] 0으로 초기화 2) 열의 크기만큼 for문..

Algorithm/백준 2019.07.16

[BOJ] - 16236. 아기 상어

[URL] https://www.acmicpc.net/problem/16236 16236번: 아기 상어 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가지고 있고, 이 크기는 자연수이다. 가장 처음에 아기 상어의 크기는 2이고, 아기 상어는 1초에 상하좌우로 인접한 한 칸씩 이동한다. 아기 상어는 자신의 크기보다 큰 물고기가 있는 칸은 지나갈 수 없고, 나머지 칸은 모두 지나갈 수 있다. 아기 상어는 자신의 크 www.acmicpc.net [풀이 과정] * BFS + 시뮬 1. 아기 상어가 먹을 수 있는 물고기 개수를 구한다. 먹을 수 있는 물고기 개수 = ..

Algorithm/백준 2019.07.10

[BOJ] - 13023. ABCDE

[URL] https://www.acmicpc.net/problem/13023 13023번: ABCDE 문제의 조건에 맞는 A, B, C, D, E가 존재하면 1을 없으면 0을 출력한다. www.acmicpc.net [풀이 과정] *그래프 구현(벡터), 깊이우선탐색(DFS) 1. 배열로 깊이 우선 탐색 (시간 초과) 2. 그래프 깊이 우선 탐색 3. 연결관계 4개 찾으면 flag = 1로 바꿔주고 flag 값 검색하여 1이면 return; [소스 코드] 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162#include #include #include ..

Algorithm/백준 2019.07.10

[BOJ] - 14502. 연구소

[URL] https://www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크기가 N×M인 직사각형으로 나타낼 수 있으며, 직사각형은 1×1 크기의 정사각형으로 나누어져 있다. 연구소는 빈 칸, 벽으로 이루어져 있으며, 벽은 칸 하나를 가득 차지한다. 일부 칸은 바이러스가 존재하며, 이 바이러스는 상하좌우로 인접한 빈 칸으로 모두 퍼져나갈 수 있다. www.acmicpc.net [풀이 과정] * DFS, BFS 1. map입력 : 0인 곳 저장(빈공간), 2인 곳 저장(바이러스) --> 벡터에 저장 2...

Algorithm/백준 2019.07.03

[BOJ] - 2156. 포도주 시식

[URL] https://www.acmicpc.net/problem/2156 2156번: 포도주 시식 효주는 포도주 시식회에 갔다. 그 곳에 갔더니, 테이블 위에 다양한 포도주가 들어있는 포도주 잔이 일렬로 놓여 있었다. 효주는 포도주 시식을 하려고 하는데, 여기에는 다음과 같은 두 가지 규칙이 있다. 포도주 잔을 선택하면 그 잔에 들어있는 포도주는 모두 마셔야 하고, 마신 후에는 원래 위치에 다시 놓아야 한다. 연속으로 놓여 있는 3잔을 모두 마실 수는 없다. 효주는 될 수 있는 대로 많은 양의 포도주를 맛보기 위해서 어떤 포도주 잔을 선택해야 할지 고 www.acmicpc.net [풀이 과정] *다이나믹 프로그래밍(dp) arr[ ] : 인덱스 별로 와인의 양을 입력받아 저장 dp[ ] : 인덱스까지..

Algorithm/백준 2019.07.01