Uknow's Lab.
article thumbnail
[백준 9316번] [Kotlin] Hello Judge
코딩테스트/Kotlin 2023. 2. 6. 20:40

https://www.acmicpc.net/problem/9316 9316번: Hello Judge 한 줄에 하나의 Hello World, Judge i! 를 출력한다. www.acmicpc.net 난이도 : 브론즈 4 태그 : 구현 설명 숫자 n을 입력받으면, n개에 줄에 걸쳐 Hello World, Judge {n}! 을 출력하면 되는 문제입니다. 소스코드 fun main() { val n = readLine()!!.toInt() repeat(n) { println("Hello World, Judge ${it + 1}!") } }

article thumbnail
[백준 17478번] [Kotlin] 재귀함수가 뭔가요?
코딩테스트/Kotlin 2023. 2. 6. 20:30

https://www.acmicpc.net/problem/17478 17478번: 재귀함수가 뭔가요? 평소에 질문을 잘 받아주기로 유명한 중앙대학교의 JH 교수님은 학생들로부터 재귀함수가 무엇인지에 대하여 많은 질문을 받아왔다. 매번 질문을 잘 받아주셨던 JH 교수님이지만 그는 중앙대 www.acmicpc.net 난이도 : 실버 5 태그 : 구현, 재귀 설명 재귀함수를 연습하기 좋은 문제 같네요. 마지막에 "라고 답변하셨지." 문장 덕분에, 함수의 맨 끝에 재귀적 호출이 아닌, 함수의 중간 위치에서 재귀적 호출을 해야 합니다. 소스코드 val str = arrayOf( "\"재귀함수가 뭔가요?\"", "\"잘 들어보게. 옛날옛날 한 산 꼭대기에 이세상 모든 지식을 통달한 선인이 있었어.", "마을 사람들..

article thumbnail
[백준 11656번] [Kotlin] 접미사 배열
코딩테스트/Kotlin 2023. 2. 5. 15:36

https://www.acmicpc.net/problem/11656 11656번: 접미사 배열 첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000보다 작거나 같다. www.acmicpc.net 난이도 : 실버 4 태그 : 문자열, 정렬 설명 문자열 s의 모든 접미사 배열을 정렬해 출력하는 문제입니다. 단순히, 문자열의 첫번째부터 마지막, 두 번째 부터 마지막, 세 번째 부터 마지막, 네 번째 부터 마지막 . . . 마지막 문자열 까지, ArrayList에 넣어준다음, 정렬하면 되겠네요. 소스코드 fun main() { val origin = readln() val strArray = ArrayList() for (i in origin.indices) { strArr..

article thumbnail
[백준 10159번] [Kotlin] 저울
코딩테스트/Kotlin 2023. 2. 5. 15:07

https://www.acmicpc.net/problem/10159 10159번: 저울 첫 줄에는 물건의 개수 N 이 주어지고, 둘째 줄에는 미리 측정된 물건 쌍의 개수 M이 주어진다. 단, 5 ≤ N ≤ 100 이고, 0 ≤ M ≤ 2,000이다. 다음 M개의 줄에 미리 측정된 비교 결과가 한 줄에 하나씩 www.acmicpc.net 난이도 : 골드 3 태그 : 그래프 이론, 그래프 탐색, 플로이드워셜 설명 각 물건들의 비교결과가 주어질 때, 각 물건과 비교결과를 알 수 없는 물건의 개수를 출력해야 합니다. 저는 처음에, 특정 값에 따른 비교가 아니라, 두 물건간의 우열이 주어진 상태라는 것만 보고, 위상정렬을 떠올려 바로 위상정렬로 풀이를 진행하려 했으나, 비교결과를 알 수 없는 물건의 개수를 출력하..

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를 들어올릴..