Uknow's Lab.
article thumbnail
[백준 4963번] [Kotlin] 섬의 개수
코딩테스트/Kotlin 2023. 2. 4. 22:13

https://www.acmicpc.net/problem/4963 4963번: 섬의 개수 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 지도의 너비 w와 높이 h가 주어진다. w와 h는 50보다 작거나 같은 양의 정수이다. 둘째 줄부터 h개 줄에는 지도 www.acmicpc.net 난이도 : 실버 2 태그 : 그래프 이론, 그래프 탐색, 너비 우선 탐색, 깊이 우선 탐색 설명 다른 DFS/BFS 탐색과 비슷하지만, 대각선 탐색이 가능한 8방향 탐색입니다. 따라서 (1,0) (0,1) (-1,0) (0,-1) 상하좌우 방향에 이어 (1,1) (1,-1) (-1,1) (-1,-1) 대각선 4방향, 총 8개 방향입니다. 소스코드 import java.util.* val dx..

article thumbnail
[백준 5554번] [Kotlin] 심부름 가는 길
코딩테스트/Kotlin 2023. 2. 4. 21:41

https://www.acmicpc.net/problem/5554 5554번: 심부름 가는 길 승균이는 매일 학교, PC방, 학원에 다닌다. 반복되는 일상에 익숙해진 승균이는 이동시간을 단축해서 PC방에 더 오래 머물고 싶었다. 그래서 스톱워치를 들고 이동할 때마다 기록을 잰 후 집 www.acmicpc.net 난이도 : 브론즈 4 태그 : 수학, 구현, 사칙연산 설명 입력이 4개 주어집니다. 어디부터 어디까지 간다. 라는게 다르긴 하지만, 그냥 다 더해서, x분 y초로 나타내면 됩니다. 90분을 시/분 으로 바꾸면, 1시간 30분이 됩니다. 그냥 쉽게, t분을 60으로 나눈 몫과, 60으로 나눈 나머지를 구하면 되겠네요. 소스코드 fun main() { var time = 0 repeat(4) { ti..

article thumbnail
[백준 1934번] [Kotlin] 최소공배수
코딩테스트/Kotlin 2023. 2. 4. 21:28

https://uknowblog.tistory.com/117 [백준 1253번] [Kotlin] 좋다 https://www.acmicpc.net/problem/1253 1253번: 좋다 첫째 줄에는 수의 개수 N(1 ≤ N ≤ 2,000), 두 번째 줄에는 i번째 수를 나타내는 Ai가 N개 주어진다. (|Ai| ≤ 1,000,000,000, Ai는 정수) www.acmicpc.net 난이도 : 골드 4 uknowblog.tistory.com 난이도 : 브론즈 1 태그 : 수학, 정수론, 유클리드 호제법 설명 가장 오래된 알고리즘인 유클리드 호제법을 사용해 풀 수 있습니다. 해당 알고리즘에 관해서는 백준 2069번 - 최대공약수와 최소공배수 포스팅을 참고해주세요. https://uknowblog.tisto..

article thumbnail
[백준 3273번] [Kotlin] 두 수의 합
코딩테스트/Kotlin 2023. 2. 4. 21:24

https://www.acmicpc.net/problem/3273 3273번: 두 수의 합 n개의 서로 다른 양의 정수 a1, a2, ..., an으로 이루어진 수열이 있다. ai의 값은 1보다 크거나 같고, 1000000보다 작거나 같은 자연수이다. 자연수 x가 주어졌을 때, ai + aj = x (1 ≤ i < j ≤ n)을 만족하는 www.acmicpc.net 난이도 : 실버 3 태그 : 두 포인터, 정렬 설명 수열이 주어질 때, 두 수의 합이 특정 수와 비슷한 수를 찾는 문제입니다. 해당 문제는 투 포인터(두 포인터)를 사용해 풀 수 있을 것 같네요. 투 포인터 투 포인터 알고리즘은 두 개의 포인터를 사용해 범위 혹은 두 개의 조합을 찾아나가는 방식입니다. 첫 원소와 마지막 원소를 가르킬 bott..

article thumbnail
[백준 5585번] [Kotlin] 거스름돈
코딩테스트/Kotlin 2023. 2. 4. 19:18

https://www.acmicpc.net/problem/5585 5585번: 거스름돈 타로는 자주 JOI잡화점에서 물건을 산다. JOI잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 타로가 JOI잡화점에서 물건을 사 www.acmicpc.net 난이도 : 브론즈 2 태그 : 그리디 설명 500엔, 100엔, 50엔, 10엔, 5엔, 1엔으로 잔돈을 거스름돈 하는 문제입니다. 전형적인 그리디 알고리즘 문제인데요. 가장 최적의 해를 연속하여 선택하는 방법입니다. 이 문제에서는 거스름돈의 개수가 가장 적어야 하므로, 단위가 가장 큰 500엔부터, 100, 50, 10, 5, 1엔 순으로 선택하면 되겠네요. 소스코드 fun..

article thumbnail
[백준 2217번] [Kotlin] 로프
코딩테스트/Kotlin 2023. 2. 4. 19:07

https://www.acmicpc.net/problem/2217 2217번: 로프 N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하 www.acmicpc.net 난이도 : 실버 4 태그 : 수학, 그리디, 정렬 설명 n개의 로프가 주어지고, k개의 로프로 w만큼의 물체를 들어올릴때, 각 로프에는 w/k의 부하가 걸립니다. 10를 버틸 수 있는 로프 하나, 15를 버틸 수 있는 로프 하나가 있으면 15개 하나를 사용하는 것 보다는, 10만큼씩 2개를 사용해 20의 무게를 들어올리는게 더 효율적입니다. 각각 5, 10, 15, 20, 25를 들어올릴..

article thumbnail
[백준 1912번] [Kotlin] 연속합
코딩테스트/Kotlin 2023. 2. 4. 16:25

https://www.acmicpc.net/problem/1912 1912번: 연속합 첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다. www.acmicpc.net 난이도 : 실버 2 태그 : 다이나믹 프로그래밍 문제 접근 이 문제는 처음 값부터 특정 값까지 가장 큰 부분을 찾는 문제가 아니라, 값이 최대가 되는 특정 구간을 찾는 문제입니다. 10 -4 3 1 5 6 -35 12 21 -1 예제에서는 12~21 부분이 되겠네요. 1 ~ 1 구간 : 10 1 ~ 2 구간 : 6 1 ~ 3 구간 : 9 1 ~ 4 구간 : 10 1 ~ 5 구간 : 15 1 ~ 6 구간 : ..

article thumbnail
[백준 6603번] [Kotlin] 로또
코딩테스트/Kotlin 2023. 2. 4. 15:56

https://www.acmicpc.net/problem/6603 6603번: 로또 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있다. 첫 번째 수는 k (6 < k < 13)이고, 다음 k개 수는 집합 S에 포함되는 수이다. S의 원소는 오름차순으로 www.acmicpc.net 난이도 : 실버 2 태그 : 수학, 조합론, 백트래킹, 재귀 설명 주어진 숫자 중 6개를 만드는 모든 조합을 찾는 문제입니다. 숫자 자체가 오름차순으로 주어지니, 입력 배열을 정렬할 필요는 없습니다. 저는 백트래킹(재귀)으로 주워진 숫자들의 모든 경우의 수를 체크하였습니다. 소스코드 import java.util.* var n = 0 lateinit var arr: Array latei..

article thumbnail
[백준 1707번] [Kotlin] 이분 그래프
코딩테스트/Kotlin 2023. 2. 3. 00:15

https://www.acmicpc.net/problem/1707 1707번: 이분 그래프 입력은 여러 개의 테스트 케이스로 구성되어 있는데, 첫째 줄에 테스트 케이스의 개수 K가 주어진다. 각 테스트 케이스의 첫째 줄에는 그래프의 정점의 개수 V와 간선의 개수 E가 빈 칸을 사이에 www.acmicpc.net 난이도 : 골드 4 태그 : 그래프 이론, 그래프 탐색, 너비 우선 탐색, 깊이 우선 탐색, 이분 그래프 설명 https://ko.wikipedia.org/wiki/%EC%9D%B4%EB%B6%84_%EA%B7%B8%EB%9E%98%ED%94%84 이분 그래프 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 2색변 이분 그래프의 예 그래프 이론에서 이분 그래프(二分graph,..

article thumbnail
자바의 StringBuilder 개행문자 삽입방법 - append(str + "\n") vs append(str).append("\n")
언어/Kotlin 2023. 2. 1. 23:51

https://uknowblog.tistory.com/157 [백준 15688번] [Java] 수 정렬하기 5 https://www.acmicpc.net/problem/15688 15688번: 수 정렬하기 5 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정 uknowblog.tistory.com 백준 15688번, 수 정렬하기 5 문제를 풀다가 미처 생각하지 못했던 부분을 하나 알게되었습니다. StringBuilder의 개행문자 추가 - sb.append(str + "\n") VS sb.append(str).append("\n") // 통과한 코드 import java.io.Buff..