https://www.acmicpc.net/problem/25377 25377번: 빵 KOI 빵은 프로그래밍을 공부하는 학생들에게 인기를 끌고 있다. 이 빵은 맛있을 뿐 아니라, 안에 프로그래밍에 큰 도움이 되는 여러 가지 힌트가 담겨 있어서 매우 인기가 높다. 이렇게 인기가 높 www.acmicpc.net 난이도 : 브론즈 4 태그 : 구현 설명 빵을 얻을 수 있는 테스트 케이스 중, 가장 빨리 얻을 수 있는 시간을 출력합니다. 소스코드 import kotlin.math.min fun main() { var min = Int.MAX_VALUE repeat(readln().toInt()) { val (a, b) = readln().split(" ").map { it.toInt() } if ( a
https://www.acmicpc.net/problem/16430 16430번: 제리와 톰 첫 번째 줄에 두 정수 A, B (1 ≤ A
https://www.acmicpc.net/problem/2193 2193번: 이친수 0과 1로만 이루어진 수를 이진수라 한다. 이러한 이진수 중 특별한 성질을 갖는 것들이 있는데, 이들을 이친수(pinary number)라 한다. 이친수는 다음의 성질을 만족한다. 이친수는 0으로 시작하지 않 www.acmicpc.net 난이도 : 실버 3 태그 : 다이나믹 프로그래밍 설명 자리수 n에 따라 각 값을 하나씩 구해보면 규칙성을 찾을 수 있습니다. n = 1 1 1개 n = 2 10 1개 n = 3 101 100 2개 n = 4 1000 1001 1010 3개 n = 5 10000 10001 10010 10100 10101 5개 n = 6 100000 100001 100010 100100 101000 101..
https://www.acmicpc.net/problem/13699 13699번: 점화식 다음의 점화식에 의해 정의된 수열 t(n)을 생각하자: t(0)=1 t(n)=t(0)*t(n-1)+t(1)*t(n-2)+...+t(n-1)*t(0) 이 정의에 따르면, t(1)=t(0)*t(0)=1 t(2)=t(0)*t(1)+t(1)*t(0)=2 t(3)=t(0)*t(2)+t(1)*t(1)+t(2)*t(0)=5 ... 주어진 입력 0 ≤ n www.acmicpc.net 난이도 : 실버 4 태그 : 다이나믹 프로그래밍 설명 규칙성을 찾아 풀이하는게 아닌, 그냥 이전에 구한 값을 사용해 다음 값을 구하는 문제입니다. 그냥 점화식을 그대로 소스코드로 옮기면 됩니다. 소스코드 fun main() { val br = Syst..
https://www.acmicpc.net/problem/9625 9625번: BABBA 상근이는 길을 걷다가 신기한 기계를 발견했다. 기계는 매우 매우 큰 화면과 버튼 하나로 이루어져 있다. 기계를 발견했을 때, 화면에는 A만 표시되어져 있었다. 버튼을 누르니 글자가 B로 변했 www.acmicpc.net 난이도 : 실버 5 태그 : 다이나믹 프로그래밍 설명 규칙을 찾아 풀 수 있는 다이나믹 프로그래밍 문제입니다. 회차 문자열 A B 0 A 1 0 1 B 0 1 2 BA 1 1 3 BAB 1 2 4 BABBA 2 3 5 BABBABAB 3 5 회차가 오를 때마다, A는 이전 회차의 B, B는 이전 회차의 A + B의 값과 같습니다. 즉 A[i] = B[i-1] (i > 0, A[0] = 1) B[i] ..
https://www.acmicpc.net/problem/5789 5789번: 한다 안한다 첫째 줄에는 테스트 케이스의 개수 N이 주어진다. (1 ≤ N ≤ 1000) 각 테스트 케이스는 한 줄로 이루어져 있으며, 0과 1로 이루어진 문자열이 주어진다. 문자열의 길이는 항상 짝수이고, 1000보다 작 www.acmicpc.net 난이도 : 브론즈 3 태그 : 구현, 문자열 설명 단순히 가운데 두 문자만 비교하여 같으면 Do-It, 다르면 Do-It-Not을 출력하는 문제입니다. 문자열의 중간은 (문자열크기 )/ 2 - 1 ~ (문자열크기) / 2로 구할 수 있습니다. 문자열 길이가 짝수인 경우만 주어진다 명시되어 있으니, 홀수인 경우는 고려하지 않아도 됩니다. 소스코드 fun main() { val br..
https://www.acmicpc.net/problem/3182 3182번: 한동이는 공부가 하기 싫어! H-ALGO 회원인 한동이는 공부하는것을 좋아하지 않는다. 하지만 약삭빠르게도 한동이는 공부도 하지 않으면서 어려운 시험을 통과하고 싶어한다. 그러던 와중 어느 날, 한동이의 동기가 한동이에 www.acmicpc.net 난이도 : 실버 3 태그 : 그래프 이론, 그래프 탐색, 브루트포스 알고리즘 설명 이미 물어본 선배를 체크해가며 선배가 가르키는 다른 사람을 계속 따라가서, 이미 물어본 선배일 경우(사이클 발생), 지금까지 몇 명의 선배를 만났는지 저장하고, 가장 큰 수를 출력하면 됩니다. 소스코드 fun main() { val br = System.`in`.bufferedReader() val n..
https://www.acmicpc.net/problem/1388 1388번: 바닥 장식 형택이는 건축가이다. 지금 막 형택이는 형택이의 남자 친구 기훈이의 집을 막 완성시켰다. 형택이는 기훈이 방의 바닥 장식을 디자인했고, 이제 몇 개의 나무 판자가 필요한지 궁금해졌다. 나 www.acmicpc.net 난이도 : 실버 4 태그 : 구현, 그래프 이론, 그래프 탐색, 너비 우선 탐색, 깊이 우선 탐색 설명 문제 태그의 그래프 탐색과는 별개로, 그냥 타일의 개수가 몇개인지 다 카운팅해서 풀 수도 있습니다. 소스코드 fun main() { val line = readLine()!!.split(" ") val height = line[0].toInt() val width = line[1].toInt() val..
https://www.acmicpc.net/problem/16173 16173번: 점프왕 쩰리 (Small) 쩰리는 맨 왼쪽 위의 칸에서 출발해 (행, 열)로 나타낸 좌표계로, (1, 1) -> (2, 1) -> (3, 1) -> (3, 3)으로 이동해 게임에서 승리할 수 있다. www.acmicpc.net 난이도 : 실버 5 태그 : 구현, 그래프 이론, 브루트포스 알고리즘, 그래프 탐색, 너비 우선 탐색, 깊이 우선 탐색 설명 오른쪽과 아래쪽. 두 방향으로만 이동할 수 있고, 해당 칸에 있는 숫자만큼만 이동할 수 있습니다. n의 크기가 매우 작아(2 map[x][y] = st.nextToken().toInt() } } visited[0][0] = true dfs(0, 0) println("Hing")..
https://www.acmicpc.net/problem/1916 1916번: 최소비용 구하기 첫째 줄에 도시의 개수 N(1 ≤ N ≤ 1,000)이 주어지고 둘째 줄에는 버스의 개수 M(1 ≤ M ≤ 100,000)이 주어진다. 그리고 셋째 줄부터 M+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 www.acmicpc.net 난이도 : 골드 5 태그 : 그래프 이론, 데이크스트라 설명 최단경로 알고리즘 중 하나인 다익스트라 최단경로 알고리즘의 기본격인 문제입니다. 다익스트라(Dijkstra)가 네덜란드인이라, 네덜란드 식 발음을 살려서 읽으면 데이크스트라 정도로 읽어야 하나, 한국의 교재 등에서 다익스트라라는 표기가 더 많이 사용되는 것 같아 본 포스팅에선 '다익스트라'라는 표기를 사..