알고리즘/백준
-
[백준] 1152 : 단어의 개수 - 코틀린(Kotlin)알고리즘/백준 2022. 10. 27. 00:01
https://www.acmicpc.net/problem/1152 1152번: 단어의 개수 첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열 www.acmicpc.net 문제 해석 공백을 기준으로 단어의 개수를 세어야 합니다. 단, 맨 앞 맨 뒤에도 공백이 있을 수 있습니다. 코드 import java.util.StringTokenizer fun main() { val input = readLine()!! val stringTokenizer = StringTokenizer(input) print(stringTokenizer.countTokens()) } 86..
-
[백준] 3052번 : 나머지 - 코틀린(kotlin)알고리즘/백준 2022. 10. 26. 00:01
https://www.acmicpc.net/problem/3052 3052번: 나머지 각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다. www.acmicpc.net 문제 해석 10개의 수가 주어지고 42로 나눈 서로 다른 나머지의 개수를 구하는 문제입니다. 집합을 이용해서 나머지의 값을 넣어주고 집합의 크기를 출력하면 될 것 같습니다. 코드 fun main() { val divideNumberSet = mutableSetOf() while (true) { val input = readLine() ?: break if (input.isEmpty() || input.isEmpty()) { break } val curNumber = ..
-
[백준] 9498 : 시험 성적 - 코틀린(Kotlin)알고리즘/백준 2022. 10. 25. 00:01
https://www.acmicpc.net/problem/9498 9498번: 시험 성적 시험 점수를 입력받아 90 ~ 100점은 A, 80 ~ 89점은 B, 70 ~ 79점은 C, 60 ~ 69점은 D, 나머지 점수는 F를 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제 해석 다른 언어라면 if-else를 활용하겠지만 코틀린에는 when을 활용하고자 합니다. 코드 import java.io.IOException fun main() { val score = readLine() ?: throw IOException() val grade = getGrade(score.toInt()) print(grade) } fun getGrade(score: Int): Char = when { score..
-
-
[백준] 10809번 : 알파벳 찾기 - 코틀린(kotlin)알고리즘/백준 2022. 10. 21. 00:01
https://www.acmicpc.net/problem/10809 10809번: 알파벳 찾기 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출 www.acmicpc.net 문제 해석 알파벳 소문자로 이루어진 단어 S가 주어집니다. 각 알파벳에 대해서 (a, b, c, d,....., x, y, z)가 처음 등장하는 위치를 공백으로 구분하여 출력합니다. 만약 알파벳이 단어에 포함되어 있지 않다면 -1을 출력하며, 단어의 첫 번째 글자는 0번째 위치부터 시작합니다. 문제 풀이 전 설계 단어의 길이는 100이 넘지 않기 때문에 단순 반복문을 통해서 해결하고자..
-
[백준] 10871번 : X보다 작은 수 - 코틀린(Kotlin)알고리즘/백준 2022. 10. 20. 00:01
https://www.acmicpc.net/problem/10871 10871번: X보다 작은 수 첫째 줄에 N과 X가 주어진다. (1 ≤ N, X ≤ 10,000) 둘째 줄에 수열 A를 이루는 정수 N개가 주어진다. 주어지는 정수는 모두 1보다 크거나 같고, 10,000보다 작거나 같은 정수이다. www.acmicpc.net 문제 해석 수열 A를 이루는 정수 N개가 주어집니다. 이때 중복을 허용하는지는 문제에서 나와있지 않은 것 같습니다. 수열 A에서 X보다 작은 수를 " "로 구분하여 출력하면 됩니다. 문제 풀이 전 설계 MutableList를 하나 선언하고 그 List에 X보다 작은 수를 스트림 filter를 활용하여 새로운 리스트로 만들어내고 출력해보고자 합니다. 이때 출력을 위해 Kotlin에 ..
-
[백준] 11286번 : 절댓값 힙 - 자바(JAVA)알고리즘/백준 2022. 9. 5. 00:01
https://www.acmicpc.net/problem/11286 11286번: 절댓값 힙 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 문제 해석 절댓값이 작은 순서대로 정렬을 해주는 문제입니다. 그리고 가장 작은 순서대로 뽑아내고 절댓값이 동일한다면 음수가 우선순위를 가집니다. 문제 풀이 전 설계 PriorityQueue(우선순위 큐)를 활용합니다. 또한 Number 클래스를 두고 절대값의 크기(num), 이 수가 음수인지 양수인지를 기록합니다. 그리고 절대값의 크기가 같다면 음수가 더 우선순위를 가지며 절..