백준 알고리즘(3)
-
백준 알고리즘 풀이 1107번 - 리모컨
https://www.acmicpc.net/problem/1107 1107번: 리모컨 첫째 줄에 수빈이가 이동하려고 하는 채널 N (0 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 고장난 버튼의 개수 M (0 ≤ M ≤ 10)이 주어진다. 고장난 버튼이 있는 경우에는 셋째 줄에는 고장난 버튼�� www.acmicpc.net - 브루트 포스 문제. 알고리즘 1. 목표로 하는 채널을 기준으로 두고 1씩 내려가거나 1씩 올린다. 2. 1씩 올리거나 내린 수들이 망가진 키를 포함하지 않는지 검사한다. 3. 망가진 키를 포함한다면 다시 1번으로, 망가진 키를 포함하지않는다면, 100에서 무식하게 올리는 거랑 비교해서 작은 횟수를 출력한다. 예외 조건 1. 100에서 무식하게 올리거나 내린것이 더 적은 이동..
2020.05.14 -
백준 알고리즘 풀이 11404번 - 플로이드
https://www.acmicpc.net/problem/11404 11404번: 플로이드 첫째 줄에 도시의 개수 n(1 ≤ n ≤ 100)이 주어지고 둘째 줄에는 버스의 개수 m(1 ≤ m ≤ 100,000)이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가 주어진다. 버스의 정보는 버스의 시작 도시 a, 도착 도시 b, 한 번 타는데 필요한 비용 c로 이루어져 있다. 시작 도시와 도착 도시가 같은 경우는 없다. 비용은 100,000보다 작거나 같은 자연수이다. 시작 www.acmicpc.net - 플로이드 와샬 문제 - 알고리즘 - 1. 플로이드 와샬 알고리즘을 통해 모든 도시로 가는데 필요한 비용의 최솟값을 구한다. (플로..
2019.10.28 -
백준 알고리즘 풀이 1780번 - 종이의 개수
분할 정복 문제. - 알고리즘 - 1. 각 종이에 있는 모든 칸의 수가 같은지를 확인한다. 2. 모든 칸의 수가 같다면 그 칸에 있는 숫자 인덱스 값 1더한다. 3. 모든 칸의 수가 같지 않다면, 종이에 있는 칸의 갯수를 1/3로 줄이고, 첫 칸을 각 종이의 첫번째 항으로 한다. - 예외 조건 - 1. -1은 인덱스가 될 수 없으므로 값을 저장할 때 다 +1을 하고 넣어주어야 한다. 첫 칸을 각 종이의 첫번째 칸으로 하는게 좀 어려웠다. 간단히 생각해보면 for문을 두개 돌려서 넣으면 된다. -소스 코드- #include using namespace std; int map[2188][2188]; int count[4]={0,}; bool check(int num,int x,int y) { int isSa..
2019.09.05