[백준] 4673번: 셀프 넘버 - Kotlin[코틀린]
·
알고리즘/Baekjoon
문제 4673번: 셀프 넘버 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, www.acmicpc.net 풀이 반복문을 통해 1부터 10000까지 각 숫자들의 생성자들을 합한다. 합한 숫자가 10000 이하일 때, check 배열을 이용해 저장하고 출력한다. 코드 fun main() { val check = BooleanArray(10001) for(i in 1..10000) { var num = i var expression = i while(num>0) { expression += num % 10 num /..
[백준] 2839번: 설탕 배달 - Kotlin[코틀린]
·
알고리즘/Baekjoon
문제 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 풀이 이 문제는 이중 반복문(3의 배수 + 5의 배수의 합)으로 해결할 수도 있지만, 효율적인 풀이를 위해 그리디 알고리즘과 DP를 이용할 수 있다. - 그리디 풀이 1. N이 5의 배수라면 답은 N/5 2. N이 5의 배수가 아니라면 3kg 에 한 번 담고(cnt++, N -= 3) 다시 반복문을 실행한다. 3. N이 0보다 작아지면 답은 -1 - dp 풀이 N이라는 숫자를 만들기 위해서 (N - 3) + 3 또는 (N - 5) + 5 의 경우로 나눠 볼 수 있다...
[백준] 1002번: 터렛 - Kotlin[코틀린]
·
알고리즘/Baekjoon
문제 1002번: 터렛 각 테스트 케이스마다 류재명이 있을 수 있는 위치의 수를 출력한다. 만약 류재명이 있을 수 있는 위치의 개수가 무한대일 경우에는 $-1$ 출력한다. www.acmicpc.net 풀이 이 문제는 두 원의 교점을 찾는 문제이다. 1. (x1, y1) == (x2, y2) 일 때, r1 과 r2 를 비교한다. - r1 == r2 이면 두 원이 같다. -> -1 - r1 != r2 이면 한 원이 다른 원에 포함된다. -> 0 2. (x1, y1) != (x2, y2) 일 때, 두 원 사이의 거리 d1 = $ \sqrt{(x1-x2)^2 + (y1-y2)^2} $ 반지름의 합 d2 = r1 + r2 반지름의 차 d3 = $ \vert r1 - r2 \vert $ 를 비교한다. - d1 > ..