Uknow's Lab.
article thumbnail
[백준 1380번] [Kotlin] 귀걸이
코딩테스트/Kotlin 2023. 4. 16. 13:53

https://www.acmicpc.net/problem/1380 1380번: 귀걸이 입력은 번호를 가진 시나리오들로 구성됩니다. 시나리오 번호는 1부터 순서대로 증가하고, 각 시나리오는 아래의 내용을 포함합니다. 한 줄에 귀걸이를 압수당한 여학생의 수, n (1 ≤ n ≤ 100)이 www.acmicpc.net 난이도 : 실버 5 태그 : 구현, 문자열 설명 학생의 이름이 두 번 나오면 귀걸이를 돌려 받은 것이고, 한 번만 나온다면 귀걸이를 압수당하고 돌려받지 못한 것입니다. 저는 Student라는 클래스를 하나 만들어 학생의 이름과 이름을 불린 횟수를 체크하였습니다. 소스코드 import java.io.BufferedReader import java.io.InputStreamReader data cl..

article thumbnail
[백준 1613] [Kotlin] 역사
코딩테스트/Kotlin 2023. 4. 3. 21:28

https://www.acmicpc.net/problem/1613 1613번: 역사 첫째 줄에 첫 줄에 사건의 개수 n(400 이하의 자연수)과 알고 있는 사건의 전후 관계의 개수 k(50,000 이하의 자연수)가 주어진다. 다음 k줄에는 전후 관계를 알고 있는 두 사건의 번호가 주어진다. www.acmicpc.net 난이도 : 골드 3 태그 : 그래프 이론, 플로이드-워셜 설명 플로이드 워셜 알고리즘을 응용하여 풀 수 있을 것 같습니다. 플로이드 워셜 알고리즘을 잘 모르겠다면, 아래 포스팅을 참고해주세요. https://uknowblog.tistory.com/39 [백준 11404번][Kotlin] 플로이드 https://www.acmicpc.net/problem/11404 11404번: 플로이드 첫째..

article thumbnail
[백준 2294번] [Kotlin] 동전 2
코딩테스트/Kotlin 2023. 4. 1. 12:38

https://www.acmicpc.net/problem/2294 2294번: 동전 2 첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다. 가치가 같은 동전이 여러 번 주 www.acmicpc.net 난이도 : 골드 5 태그 : 다이나믹 프로그래밍 설명 동전의 개수를 최소로 하는 문제입니다. 같은 단위의 동전이 여러개 주어질 수 있으므로 중복제거를 해야 합니다. dp의 각 원소는 각 동전을 만들기 위한 최소의 동전 개수입니다. 0원을 만들기 위한 동전의 개수는 0개이므로, dp[0] = 0으로 초기화합니다. 1, 5, 12원 동전을 사용해 15원을 만들어야 합니다..

article thumbnail
[백준 10102번] [Kotlin] 개표
코딩테스트/Kotlin 2023. 3. 31. 21:38

https://www.acmicpc.net/problem/10102 10102번: 개표 입력은 총 두 줄로 이루어져 있다. 첫째 줄에는 심사위원의 수 V (1 ≤ V ≤ 15)가 주어지고, 둘째 줄에는 각 심사위원이 누구에게 투표했는지가 주어진다. A와 B는 각각 그 참가자를 나타낸다. www.acmicpc.net 난이도 : 브론즈 3 태그 : 문자열 설명 A와 B가 같으면 Tie, 같지 않다면 더 많이 나온 쪽을 출력하는 문제입니다. 소스코드 fun main() { readln() val line = readln() val a = line.count { it == 'A' } val b = line.count { it == 'B' } println(if (a > b) 'A' else if (a < b) ..

article thumbnail
[백준 2557번] [Kotlin] Hello World
코딩테스트/Kotlin 2023. 3. 31. 21:21

https://www.acmicpc.net/problem/2557 2557번: Hello World Hello World!를 출력하시오. www.acmicpc.net 난이도 : 브론즈 5 태그 : 구현 설명 Hello World를 출력하는 프로그래밍의 기본 문제입니다. 소스코드 fun main() { println("Hello World!") } 후기 옛날에 풀었던 문제들을 포스팅하고 있습니다. Hello World. 새 언어를 배울 때 마다 풀었던 문제였는데, C++, Python, Java, Kotlin 등 여러 언어로 풀었던 흔적들이 보이네요. 다음엔 엄랭으로 풀어보고 싶습니다.

article thumbnail
[백준 2023번] [Kotlin] 신기한 소수
코딩테스트/Kotlin 2023. 3. 31. 20:48

https://www.acmicpc.net/problem/2023 2023번: 신기한 소수 수빈이가 세상에서 가장 좋아하는 것은 소수이고, 취미는 소수를 가지고 노는 것이다. 요즘 수빈이가 가장 관심있어 하는 소수는 7331이다. 7331은 소수인데, 신기하게도 733도 소수이고, 73도 소수 www.acmicpc.net 난이도 : 골드 5 태그 : 수학, 정수론, 백트래킹, 소수 판정 설명 백트래킹 + 소수판정 문제입니다. 백트래킹으로 수열을 구한 뒤, 수열을 숫자로 바꿔 해당 숫자가 소수인지 판단하였습니다. 소스코드 시간초과 var n = -1 lateinit var nums: Array val sb = StringBuilder() fun main() { n = readln().toInt() nums..

article thumbnail
[백준 15351번] [Kotlin] 인생 점수
코딩테스트/Kotlin 2023. 3. 29. 21:18

https://www.acmicpc.net/problem/15351 15351번: 인생 점수 어떤 사람이 무엇을 즐기느냐에 따라 그 사람의 인생 점수를 측정할 수 있다. A를 1점, B를 2점, ... , Z를 26점으로 해, 즐기는 것의 이름의 알파벳 점수를 모두 더하면 된다. 예를 들어, "OTAKU LIFE" 는 www.acmicpc.net 난이도 : 브론즈 2 태그 : 구현, 문자열 설명 문자열이 알파벳의 몇 번째 글자인지가 점수가 됩니다. 문자열의 모든 점수를 더하여 100점이면 PERFECT LIFE, 아니라면 점수를 출력하는 문제입니다. 소스코드 import java.io.BufferedReader import java.io.InputStreamReader fun main() { val br..

article thumbnail
[백준 11047번] [Kotlin] 동전 0
코딩테스트/Kotlin 2023. 3. 29. 21:09

https://www.acmicpc.net/problem/11047 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net 난이도 : 실버 4 태그 : 그리디 설명 그리디 알고리즘 문제로, 늘 최적의 해를 선택하는 문제입니다. 동전의 개수를 최소로 해야 하므로, 동전의 단위가 가장 큰 것부터 선택해야 합니다. 소스코드 import java.io.BufferedReader import java.io.InputStreamReader fun main() { v..

article thumbnail
[백준 4458번] [Kotlin] 첫 글자를 대문자로
코딩테스트/Kotlin 2023. 3. 29. 20:53

https://www.acmicpc.net/problem/4458 4458번: 첫 글자를 대문자로 첫째 줄에 줄의 수 N이 주어진다. 다음 N개의 줄에는 문장이 주어진다. 각 문장에 들어있는 글자의 수는 30을 넘지 않는다. 모든 줄의 첫 번째 글자는 알파벳이다. www.acmicpc.net 난이도 : 브론즈 3 태그 : 구현, 문자열 설명 문자열의 첫 번째 글자만 대문자로 바꾸는 문제입니다. 저는 문자열을 입력받아 CharArray로 변환시킨 뒤, 첫 번째 글자만 대문자화(Uppercase)로 변환한 후, 출력하였습니다. 소스코드 fun main() { repeat(readln().toInt()) { var line = readln().toCharArray() line[0] = line[0].upper..

article thumbnail
[백준 2902번] [Kotlin] KMP는 왜 KMP일까?
코딩테스트/Kotlin 2023. 3. 28. 23:38

https://www.acmicpc.net/problem/2902 2902번: KMP는 왜 KMP일까? 입력은 한 줄로 이루어져 있고, 최대 100글자의 영어 알파벳 대문자, 소문자, 그리고 하이픈 ('-', 아스키코드 45)로만 이루어져 있다. 첫 번째 글자는 항상 대문자이다. 그리고, 하이픈 뒤에는 반드 www.acmicpc.net 난이도 : 브론즈 2 태그 : 구현, 문자열 설명 하이픈(-)으로 분리된 여러 단어가 주이집니다. 하이픈을 매개로 단어를 나눈 뒤, 각 문자열의 첫 번째 글자를 가져오면 되겠네요. 소스코드 fun main() { println(readln().split("-").map { it[0] }.joinToString("")) } readln()으로 줄을 읽어서, split("-"..