Algorithm/백준 문제풀이

https://www.acmicpc.net/problem/14891 14891번: 톱니바퀴 첫째 줄에 1번 톱니바퀴의 상태, 둘째 줄에 2번 톱니바퀴의 상태, 셋째 줄에 3번 톱니바퀴의 상태, 넷째 줄에 4번 톱니바퀴의 상태가 주어진다. 상태는 8개의 정수로 이루어져 있고, 12시방향부터 www.acmicpc.net 문제풀이 1. 4개의 톱니바퀴에 대해 옆의 톱니바퀴가 회전하면 자신도 회전하는 여부를 체크하는 함수를 생성 2. 톱니바퀴 회전하는 함수 생성 3. k번 톱니바퀴를 선택하고 회전방향에 따라 회전하는 함수 생성 3-1. 지정한 톱니바퀴가 회전할 때 주변 톱니바퀴가 회전하는지 1번의 함수를 통해 확인한 후 회전시킴 3-2. 회전을 마친 톱니바퀴는 표시를 해서 무한반복을 방지한다. 4. 점수를 세는..
https://www.acmicpc.net/problem/17142 17142번: 연구소 3 인체에 치명적인 바이러스를 연구하던 연구소에 승원이가 침입했고, 바이러스를 유출하려고 한다. 바이러스는 활성 상태와 비활성 상태가 있다. 가장 처음에 모든 바이러스는 비활성 상태이고 www.acmicpc.net 문제풀이 1. DFS를 통해 바이러스 중 m개를 선택하는 함수 생성 2. BFS를 통해 선택한 바이러스를 퍼뜨리는 함수 생성 3. 길의 수만큼 바이러스를 퍼뜨리면 종료 (비활성 바이러스가 가득차 있으면 걸린 시간은 0) 4. 다 퍼뜨린 후 모든 경우에서 길의 수가 바이러스 수보다 많으면 -1을 리턴 소스코드 /* DFS를 통해 바이러스 m개 선택 BFS를 통해 바이러스 퍼뜨리기 모든 빈 칸에 바이러스를 퍼..
https://www.acmicpc.net/problem/17140 17140번: 이차원 배열과 연산 첫째 줄에 r, c, k가 주어진다. (1 ≤ r, c, k ≤ 100) 둘째 줄부터 3개의 줄에 배열 A에 들어있는 수가 주어진다. 배열 A에 들어있는 수는 100보다 작거나 같은 자연수이다. www.acmicpc.net 문제풀이 1. R연산 구현 1-1. R연산 한 줄 씩 구현하는 함수 생성 (이중 정렬) 2. C연산 구현 2-1. C연산 한 줄 씩 구현하는 함수 생성 (이중 정렬) 3. 해당 위치를 확인하는 코드 구현 (범위 밖에 해당 위치를 처리하는 코드 구현 ) /* R 연산 구현 : 행 >= 열 세로 >= 가로 C 연산 구현 : 행 < 열 세로 < 가로 수를 정렬할 때 0을 무시한다. 런타임 ..
https://www.acmicpc.net/problem/19238 19238번: 스타트 택시 첫 줄에 N, M, 그리고 초기 연료의 양이 주어진다. (2 ≤ N ≤ 20, 1 ≤ M ≤ N2, 1 ≤ 초기 연료 ≤ 500,000) 연료는 무한히 많이 담을 수 있기 때문에, 초기 연료의 양을 넘어서 충전될 수도 있다. 다 www.acmicpc.net 문제풀이 1. 손님을 찾을 함수 생성 1 - 1. BFS를 활용 (car 클래스를 생성해 y,x,fuel 한 칸 이동할 때마다 fuel - 1 처리 / 처음 위치부터 탐색 시작) 1 - 2. 가장 작은 최단거리의 손님들을 배열에 담음. 1 - 3. 배열의 이중정렬로 행이 가장 작고 행이 같으면 열이 가장 작은 손님을 탐색 1 - 4. 연료가 없으면 빈 행렬이..
https://www.acmicpc.net/problem/14890 14890번: 경사로 첫째 줄에 N (2 ≤ N ≤ 100)과 L (1 ≤ L ≤ N)이 주어진다. 둘째 줄부터 N개의 줄에 지도가 주어진다. 각 칸의 높이는 10보다 작거나 같은 자연수이다. www.acmicpc.net 문제풀이 : 행과 열을 체크하는 함수 생성 높이에 따라 분류 1. 높이가 +2, -2 이상 차이나는 경우 false를 return 2. 높이가 같은 경우 stack +1 3. 오르막길인 경우 3 - 1. 그 전까지의 stack이 L 보다 큰 경우 통과 3 - 2. stack이 L보다 작은 경우 false를 return 4. 내리막길인 경우 4 - 1. 내리막길을 확인하는 downFlag = 1, stack = 1 4 -..
https://www.acmicpc.net/problem/17779 17779번: 게리맨더링 2 재현시의 시장 구재현은 지난 몇 년간 게리맨더링을 통해서 자신의 당에게 유리하게 선거구를 획정했다. 견제할 권력이 없어진 구재현은 권력을 매우 부당하게 행사했고, 심지어는 시의 이름 www.acmicpc.net 문제풀이 1. x,y,d1,d2 경우의 수 탐색 2. 경계선과 영역을 표시하는 함수 생성 3. 영역별로 인구수를 계산해 가장 많은 선거구와 가장 적은 선거구의 인구 차이의 최솟값을 구해 비교하는 함수 생성 소스코드 import java.awt.print.Pageable; import java.util.*; import java.lang.*; import java.io.*; /* 1. 기준점, 경계의 길..
https://www.acmicpc.net/problem/17143 17143번: 낚시왕 낚시왕이 상어 낚시를 하는 곳은 크기가 R×C인 격자판으로 나타낼 수 있다. 격자판의 각 칸은 (r, c)로 나타낼 수 있다. r은 행, c는 열이고, (R, C)는 아래 그림에서 가장 오른쪽 아래에 있는 칸이다. www.acmicpc.net 문제풀이 : 1초동안 일어나는 일들을 구현 1. 낚시왕이 오른쪽으로 한 칸 이동 2. 열에 있는 상어 중 땅에 가장 가까운 상어 잡음 3. 상어 이동 3-1 벽에 만나면 반대로 이동 3-2 상어가 겹치면 덩치가 큰 상어가 다 잡아먹는다. 4. 낚시왕이 오른쪽으로 나가면 끝난다. 소스코드 import java.lang.reflect.Array; import java.util.*;..
import java.util.*; import java.lang.*; import java.io.*; // 16% 틀림 // 처음 도달하는게 최소라는 보장이 있어야 한다. // 한 턴에 움직이는 것을 체크 public class 로봇1726 { static int m; // 공장 세로 길이 static int n; // 공장 가로 길이 static int factory[][]; // 공장 지도 static int visited[][][]; // 방문 여부 표시 static int answer; // 4방향 표시 동,서,남,북 static int[] dx = {0,1,-1,0,0}; static int[] dy = {0,0,0,1,-1}; static int sy, sx, sdir; static int ..
https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net 문제풀이 1. DFS를 이용해 치킨집을 M개를 추린다. 2. 추린 치킨집을 토대로 도시의 치킨 거리를 구한다. 3. 값의 비교를 통해 가장 작은 치킨 거리를 구한다. 소스코드 import java.util.*; import java.io.*; import java.lang.*; public class 치킨배달15686 { static int n; // 도시의 크기 static..
너지살
'Algorithm/백준 문제풀이' 카테고리의 글 목록 (14 Page)