Algorithm/BOJ (95) 썸네일형 리스트형 [BOJ] 10026. 적록색약 Python, Java https://www.acmicpc.net/problem/10026 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net 1. 해결방법 BFS로 해결했다. DFS보단 BFS가 훨씬 간단해 보인 단순한 이유;; R과 G가 같은 것으로 판단하기 위해서 단순하게 2중 for문을 이용해서 R을 G로 바꾸고 BFS를 한번 더 돌렸다. 끝;; 너무 쉬움.. 2. 정답코드 Python import sys from collections import deque input = sys.stdin.readline N = int(i.. [BOJ] 2573. 빙산 https://www.acmicpc.net/problem/2573 2573번: 빙산 첫 줄에는 이차원 배열의 행의 개수와 열의 개수를 나타내는 두 정수 N과 M이 한 개의 빈칸을 사이에 두고 주어진다. N과 M은 3 이상 300 이하이다. 그 다음 N개의 줄에는 각 줄마다 배열의 각 행을 www.acmicpc.net 1. 해결방법 BFS로 해결했다. 빙산이 모두 사라질 때를 카운트 해서 출력해야하므로, while문을 사용해서 year 카운트 변수를 루프때마다 +1하는 로직을 구상하였다. 또한, BFS를 돌면서 빙산의 그룹 카운팅을 하고 나서 빙산의 크기를 줄이는 로직을 추가해서 시간 복잡도를 최소한으로 줄였다. 1- 1. BFS 로직 def bfs(y, x): q = deque() q.append((y,.. [BOJ] 9205. 맥주 마시면서 걸어가기 https://www.acmicpc.net/problem/9205 9205번: 맥주 마시면서 걸어가기 송도에 사는 상근이와 친구들은 송도에서 열리는 펜타포트 락 페스티벌에 가려고 한다. 올해는 맥주를 마시면서 걸어가기로 했다. 출발은 상근이네 집에서 하고, 맥주 한 박스를 들고 출발한다. www.acmicpc.net 1. 해결방법 맥주가 20병 있다고 한다. 50미터 이동할 때마다 맥주 한병씩은 꼭 마셔야 하는데, 여기서 맥주의 개수를 카운트 하기 보다는 맥주를 못마시게 될 경우와 맥주를 마시면서 페스티벌에 도착하는 경우만 생각하면 되기 때문에 맥주 50미터당 맥주 20병을 다 마실 수 있는 거리인 1000미터를 기준으로 해결해야 한다. 1000미터가 키 포인트 이다. 집에서 편의점까지의 거리를 구한 다.. [BOJ] 7569. 토마토 https://www.acmicpc.net/problem/7569 7569번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, www.acmicpc.net 1. 해결방법 BFS 문제인것은 보자마자 알 것이다. 다만 특징은 3차원이라는 것이다. 어떻게 할까? map을 이용해서 2차원 배열을 만들고, 그것을 높이(H) 만큼 다시 for문으로 받으면 된다. 1. x, y, z방향의 디폴트 값을 설정 2. 시작하기 전 익은 토마토 위치 값을 q에 append 3. bfs를 돌면서 토마토가 익으면 day + 1하고 q.append 4... [BOJ] 16236. 아기 상어 https://www.acmicpc.net/problem/16236 16236번: 아기 상어 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가 www.acmicpc.net 1. 해결방법 일단 로직 생각하는데 오래 걸렸고, 생각을 코드로 옮기는데에도 중간중간 디버깅을 많이 해서 골드 4, 5문제보다 두배정도 걸렸다. 5~6시간 정도;; 코드로 옮기려는데 생각보다 조건이 까다로웠다. 작은 물고기만 먹을 수 있음 같은 사이즈의 물고기는 지나갈 수만 있음 먹을 수 있는 물고기가 1마리라면, 그 물고기를 먹으러 간다. - 먹을 수 있는 물고기가 1마리보다 많다면, 거.. [BOJ] 11559. Puyo Puyo https://www.acmicpc.net/problem/11559 11559번: Puyo Puyo 총 12개의 줄에 필드의 정보가 주어지며, 각 줄에는 6개의 문자가 있다. 이때 .은 빈공간이고 .이 아닌것은 각각의 색깔의 뿌요를 나타낸다. R은 빨강, G는 초록, B는 파랑, P는 보라, Y는 노랑이다. www.acmicpc.net 1. 해결방법 시뮬레이션 BFS 문제이다. 문제를 해결하는데 있어서 큰 어려움은 없었지만, 정답까지 오는데 많이 헤맸던 문제이다. 3시간 정도 걸렸다. 쉽게 말해 애니팡과 같은 게임 종류의 문제이다. 알파벳을 터트리고 위에 있던 알파벳은 아래로 내려가는 로직으로 구성되어있다. 큐를 이용해서 2중 for문을 돌면서 알파벳이 있을 때, 큐에 담고 해당 알파벳과 일치하는 알파벳.. [BOJ] 15685. 드래곤 커브 https://www.acmicpc.net/problem/15685 15685번: 드래곤 커브 첫째 줄에 드래곤 커브의 개수 N(1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 드래곤 커브의 정보가 주어진다. 드래곤 커브의 정보는 네 정수 x, y, d, g로 이루어져 있다. x와 y는 드래곤 커 www.acmicpc.net 1. 해결방법 시뮬레이션 문제이다. 하지만 이동 방향에 대한 규칙을 찾아야하는 무시무시한 방법이 숨어있다. 본인은 가까스로 찾긴했는데 찾아도 다른 부분의 로직을 코드로 옮기는데 한계가 있어 풀이를 참조하였다. 시간은 2시간정도 걸렸다. 가장 중요한건 드래곤 커브의 방향의 규칙성을 찾는게 중요하다. 0세대 : 0 1세대 : 0 1 2세대 : 0 1 2 1 3세대 : 0 1.. [BOJ] 2636. 치즈 https://www.acmicpc.net/problem/2636 2636번: 치즈 아래 과 같이 정사각형 칸들로 이루어진 사각형 모양의 판이 있고, 그 위에 얇은 치즈(회색으로 표시된 부분)가 놓여 있다. 판의 가장자리(에서 네모 칸에 X친 부분)에는 치즈가 놓 www.acmicpc.net 1. 해결방법 시뮬레이션 BFS 문제이다. 능력 부족으로 3시간 정도 걸렸다,,,,,, 주의해야될 점은 치즈의 겉 부분만 녹아서 없어진다는 부분이다. 본인도 어떻게 로직을 구성할까 고민을 두시간 이상 했다. 시작은 (0, 0)에서 큐에 append하면서 시작한다. q가 없어질 때까지 while문을 반복한다. maps에서 인덱스 값이 0에서 0인 위치를 if문으로 판별해서 q에 append한다. 여기서 방문 기록을 해.. 이전 1 2 3 4 5 6 ··· 12 다음