본문 바로가기

BOJ15

BOJ(1181) - Kotlin 문제 알파벳 소문자로 이루어진 N개의 단어가 들어오면 아래와 같은 조건에 따라 정렬하는 프로그램을 작성하시오. 길이가 짧은 것부터 길이가 같으면 사전 순으로 입력 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. 출력 조건에 따라 정렬하여 단어들을 출력한다. 단, 같은 단어가 여러 번 입력된 경우에는 한 번씩만 출력한다. 나의 접근방법 동일한 문자열이 들어오는 것을 없애주기 위해서 Set 자료구조를 사용했다. 그리고 먼저 사전순서로 정렬을 해놓고 문자열 길이를 비교하기 위해서 sorted() 함수를 사용했다. 코드 import java.io.Buffe.. 2022. 6. 2.
BOJ(11050) - Kotlin 문제 자연수 \(N\)과 정수 \(K\)가 주어졌을 때 이항 계수 \(\binom{N}{K}\)를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 10, 0 ≤ \(K\) ≤ \(N\)) 출력 \(\binom{N}{K}\)를 출력한다. 나의 접근방법 이항계수가 아예 생각나지 않아서 구글링을 했다. 이항계수의 공식은 \(\frac{n!}{r!(n-r)!}\)이였다. 공식에서 팩토리얼을 많이 사용하기 때문에 팩토리얼 함수를 만들고 공식을 그대로 대입시켜 풀었다. 코드 /* 이항 계수 1 */ import java.util.Scanner fun main() = with(Scanner(System.`in`)) { val n = nextInt() val r.. 2022. 5. 31.
BOJ(1008) - Kotlin 문제 두 정수 A와 B를 입력받은 다음, A/B를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 A와 B가 주어진다. (0 < A, B < 10) 출력 첫째 줄에 A/B를 출력한다. 실제 정답과 출력값의 절대오차 또는 상대오차가 10-9 이하이면 정답이다. 나의 접근방법 입력받은 값을 리스트에 저장하고 계산을 진행하였다. 코드 fun main(args: Array) { val inputString = readLine() val stringArray = inputString!!.split(" ") var doubleList: MutableList = mutableListOf() stringArray.forEach{ doubleArray.add(it.toDouble()) } val result = doub.. 2022. 5. 29.
BOJ(2869) - Kotlin 문제 땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다. 달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다. 달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) 출력 첫째 줄에 달팽이가 나무 막대를 모두 올라가는데 며칠이 걸리는지 출력한다. 나의 접근방법 하루가 지날 때마다 결국 A-B만큼 이동하기 때문에 그만큼 곱해줄 때 V보다 큰 수를 찾는 방정식을 구함 + 정상에 오르면 내려오지 않기때문에 B를 한번만 상쇄할 수 있도록 더해준.. 2022. 5. 28.