Uknow's Lab.
article thumbnail
[백준 1449번] [Kotlin] 수리공 항승
코딩테스트/Kotlin 2023. 12. 1. 15:15

https://www.acmicpc.net/problem/1449 1449번: 수리공 항승 첫째 줄에 물이 새는 곳의 개수 N과 테이프의 길이 L이 주어진다. 둘째 줄에는 물이 새는 곳의 위치가 주어진다. N과 L은 1,000보다 작거나 같은 자연수이고, 물이 새는 곳의 위치는 1,000보다 작거나 www.acmicpc.net 난이도 : 실버 3 태그 : 그리디, 정렬 설명 1, 2, 3, 4 위치에서 물이 흐르고, 길이가 3인 테이프가 있다고 할 때, 위치 1을 테이프를 막기 위해 0.5 ~ 2.5 까지 덮을 수 있습니다. 하지만 위치가 3인 곳은 고치지 못하기에, 위치 3을 막기 위해 2.5 ~ 4.5 까지 덮을 수 있습니다. 즉, 물이 새는 곳의 위치를 오름차순 정렬한 뒤, 가장 처음 물이 떨어지는..

article thumbnail
[백준 11508번] [Kotlin] 2+1 세일
코딩테스트/Kotlin 2023. 11. 24. 15:23

https://www.acmicpc.net/problem/11508 11508번: 2+1 세일 KSG 편의점에서는 과일우유, 드링킹요구르트 등의 유제품을 '2+1 세일'하는 행사를 하고 있습니다. KSG 편의점에서 유제품 3개를 한 번에 산다면 그중에서 가장 싼 것은 무료로 지불하고 나머지 두 www.acmicpc.net 난이도 : 실버 5 태그 : 그리디, 정렬 설명 3개를 사면 가장 싼 가격의 제품 하나를 무료로 줍니다. 그냥 단순히 내림차순으로 정렬 후, 가장 비싼 물품과 그 다음으로 비싼 물품을 산 뒤, 3번째로 비싼 물품을 공짜로 받고, 4번째로 비싼 물품과, 5번째로 비싼 물품을 산 뒤, 6번째로 비싼 물품을 꽁자로 받는 과정을 반복하여 풀 수 있을 것 같습니다. 소스코드 fun main() ..

article thumbnail
[백준 16496번] [Kotlin] 큰 수 만들기
코딩테스트/Kotlin 2023. 11. 24. 15:01

https://www.acmicpc.net/problem/16496 16496번: 큰 수 만들기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 리스트에 포함된 수가 주어진다. 수는 공백으로 구분되어져 있고, 1,000,000,000보다 작거나 같은 음이 아닌 정수 이다. 0을 제외한 나 www.acmicpc.net 난이도 : 플래티넘 4 태그 : 그리디, 정렬 설명 문제 자체는 간단합니다. n과, n개의 숫자가 주어질 때 해당 숫자를 잘 조합하여 가장 큰 수를 만드는 문제입니다. 소스코드 첫 번째 시도 import java.util.StringTokenizer fun main() { val n = readln().toInt() val st = StringTokenizer(r..

article thumbnail
[백준 1181번] [Kotlin] 단어 정렬
코딩테스트/Kotlin 2023. 11. 20. 15:10

https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 난이도 : 실버 5 태그 : 문자열, 정렬 설명 같은 문자는 제거하면서, 길이 순으로 정렬하고, 길이가 같을 땐 사전 순으로 정렬하는 문제입니다. 코틀린, 코딩테스트 둘 다 공부를 시작한지 얼마 안됬을 때 풀었던 문제였던 것 같은데, 옛날에 꽤나 치열하게 풀었더군요... 소스코드 1년 전 코드 fun main() { val case = readLine()!!.toInt() var arr..

article thumbnail
[백준 24484번] [Kotlin] 알고리즘 수업 - 깊이 우선 탐색 6
코딩테스트/Kotlin 2023. 9. 25. 01:45

https://www.acmicpc.net/problem/24484 24484번: 알고리즘 수업 - 깊이 우선 탐색 6 정점 1번에서 정점 4번을 방문한다. 정점 4번에서 정점 3번을 방문한다. 정점 3번에서 정점 2번을 방문한다. 정점 5번은 정점 1번에서 방문할 수 없다. 따라서, ti 값은 1번 정점부터 1, 4, 3, 2, 0이다 www.acmicpc.net 난이도 : 실버 2 태그 : 깊이 우선 탐색, 정렬, 그래프 탐색, 그래프 이론 설명 깊이 우선 탐색 1-2번 + 3-4번을 합친 형태면서, 깊이 우선 탐색 5번의 내림차순 방문 버전입니다. 1~5번을 푸신 분들이라면 별로 어렵지 않게 푸실 수 있을 문제입니다. 1번 노드 2번 노드 3번 노드 4번 노드 5번 노드 6번 노드 순서 1 4 2 ..

article thumbnail
[백준 24483번] [Kotlin] 알고리즘 수업 - 깊이 우선 탐색 5
코딩테스트/Kotlin 2023. 9. 25. 01:38

https://www.acmicpc.net/problem/24483 24483번: 알고리즘 수업 - 깊이 우선 탐색 5 정점 1번에서 정점 2번을 방문한다. 정점 2번에서 정점 3번을 방문한다. 정점 3번에서 정점 4번을 방문한다. 정점 5번은 정점 1번에서 방문할 수 없다. 따라서, ti 값은 1번 정점부터 1, 2, 3, 4, 0이다 www.acmicpc.net 난이도 : 실버 2 태그 : 그래프 이론, 그래프 탐색, 정렬, 깊이 우선 탐색 설명 깊이 우선 탐색 1번 + 3번이라고 볼 수 있습니다. 방문 순서를 체크하는 1번과 깊이를 체크하는 3번을 잘 풀었다면 쉽게 푸실 수 있을 겁니다. 개념 자체는 1-2번, 3-4번과 동일합니다. 오름차순으로 방문할 경우, 방문 순서는 1 -> 2 -> 4 ->..

article thumbnail
[백준 24482번] [Kotlin] 알고리즘 수업 - 깊이 우선 탐색 4
카테고리 없음 2023. 9. 23. 02:31

https://www.acmicpc.net/problem/24482 24482번: 알고리즘 수업 - 깊이 우선 탐색 4 깊이 우선 탐색 트리는 1, 2, 3, 4번 노드로 구성된다. 1번 노드가 루트이다. 1번 노드의 자식은 4번 노드이다. 4번 노드의 자식은 3번 노드이다. 3번 노드의 자식은 2번 노드이다. 5번 노드는 1번 노드 www.acmicpc.net 난이도 : 실버 2 태그 : 그래프 이론, 그래프 탐색, 정렬, 깊이 우선 탐색 설명 트리의 경우, 탐색의 방문 순서에 관계없이 동일한 깊이를 가지겠지만, 문제에서 주어지는 그래프는 사이클이 있을 수 있는 그래프이기 때문에, 깊이 우선 탐색으로 탐색할 경우 탐색 순서(번호가 작은 노드부터 / 번호가 큰 노드부터)에 따라 각 노드의 깊이가 달라질 ..

article thumbnail
[백준 24481번] [Kotlin] 알고리즘 수업 - 깊이 우선 탐색 3
코딩테스트/Kotlin 2023. 9. 23. 02:27

https://www.acmicpc.net/problem/24481 24481번: 알고리즘 수업 - 깊이 우선 탐색 3 깊이 우선 탐색 트리는 1, 2, 3, 4번 노드로 구성된다. 1번 노드가 루트이다. 1번 노드의 자식은 2번 노드이다. 2번 노드의 자식은 3번 노드이다. 3번 노드의 자식은 4번 노드이다. 5번 노드는 1번 노드 www.acmicpc.net 난이도 : 실버 2 태그 : 그래프 이론, 그래프 탐색, 정렬, 깊이 우선 탐색 설명 깊이우선탐색 1, 2번이 몇 번째로 방문했는지를 출력하는 것이라면, 깊이우선탐색 3, 4번은 깊이(depth)를 출력하는 문제입니다. 트리의 경우, 탐색 순서가 어떻든간에 각 노드의 깊이는 모두 동일하겠지만, 해당 문제는 사이클이 존재할 수 있는 그래프에서의 D..

article thumbnail
[백준 24480번] [Kotlin] 알고리즘 수업 - 깊이 우선 탐색 2
코딩테스트/Kotlin 2023. 9. 23. 01:41

https://www.acmicpc.net/problem/24480 24480번: 알고리즘 수업 - 깊이 우선 탐색 2 첫째 줄에 정점의 수 N (5 ≤ N ≤ 100,000), 간선의 수 M (1 ≤ M ≤ 200,000), 시작 정점 R (1 ≤ R ≤ N)이 주어진다. 다음 M개 줄에 간선 정보 u v가 주어지며 정점 u와 정점 v의 가중치 1인 양 www.acmicpc.net 난이도 : 실버 2 태그 : 그래프 이론, 그래프 탐색, 정렬, 깊이 우선 탐색 설명 알고리즘 수업 - 깊이 우선 탐색 1과 비슷한 문제입니다. https://uknowblog.tistory.com/323 [백준 24479번] [Kotlin] 알고리즘 수업 - 깊이 우선 탐색 1 https://www.acmicpc.net/p..

article thumbnail
[백준 5648번] [Kotlin] 역원소 정렬
코딩테스트/Kotlin 2023. 7. 19. 00:23

https://www.acmicpc.net/problem/5648 5648번: 역원소 정렬 모든 원소가 양의 정수인 집합이 있을 때, 원소를 거꾸로 뒤집고 그 원소를 오름차순으로 정렬하는 프로그램을 작성하세요. 단, 원소를 뒤집었을 때 0이 앞에 선행되는 경우는 0을 생략해야합니 www.acmicpc.net 난이도 : 실버 5 태그 : 정렬 설명 문제 자체는 쉬웠으나, 입력이 꽤 특이하여 애먹었던 문제였습니다. 처음엔 카운팅 변수를 하나 두고 체크했는데 왜인지 계속 오류가 나서, BufferedReader를 사용해 null을 입력받을 때 까지 계속 입력받는 방법으로 구현했습니다. (BufferedReader는 더 이상 입력받을게 없을 경우 null 반환) 소스코드 import java.util.Strin..