Kotlin

문제 링크 17427번: 약수의 합 2 두 자연수 A와 B가 있을 때, A = BC를 만족하는 자연수 C를 A의 약수라고 한다. 예를 들어, 2의 약수는 1, 2가 있고, 24의 약수는 1, 2, 3, 4, 6, 8, 12, 24가 있다. 자연수 A의 약수의 합은 A의 모든 약수를 더 www.acmicpc.net 💡문제 분석 요약 자연수 A의 약수의 합은 f(A)이다. x보다 작거나 같은 모든 자연수 y의 f(y)값을 더한 값은 g(x)이다. 자연수 N이 주어졌을 때, g(N)을 구해야한다. 1부터 N까지 각 숫자에 대하여 그 숫자의 모든 약수들의 합을 구해야 한다. n 의 상한(0 < n
문제 링크 15988번: 1, 2, 3 더하기 3 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 1,000,000,009로 나눈 나머지를 출력한다. www.acmicpc.net 💡문제 분석 요약 n 이 1, 2, 3의 합으로 표현될 수 있는 방법의 수를 찾는 것이다. 문제 n 을 구성하려면 명시적으로 두 개 이상의 숫자가 필요하다. n 의 상한(0 < n 3에 대하여 dp[i] = dp[i-1] + dp[i-2] + dp[i-3]가 된다. (dp[1] = 1, dp[2] = 2, dp[3] = 4.) 💡코드 const val MOD = 1_000_000_009 fun main() { val T = readLine()!!.toInt() val dp = LongArray(1_000..
백준 알고리즘 문제 원본 1783번: 병든 나이트첫째 줄에 체스판의 세로 길이 N와 가로 길이 M이 주어진다. N과 M은 2,000,000,000보다 작거나 같은 자연수이다.www.acmicpc.net 방문할 수 있는 칸의 최대 개수를 구하는 문제는 조건에 따라 다양한 접근 방식이 필요하다. 이번 문제해결의 핵심은 체스판의 크기와 나이트의 이동 규칙을 분석하는 것이었다.문제 이해 병든 나이트는 4가지 방법으로만 이동할 수 있다.2칸 위로, 1칸 오른쪽1칸 위로, 2칸 오른쪽1칸 아래로, 2칸 오른쪽2칸 아래로, 1칸 오른쪽이동 횟수가 4번 이상일 경우, 4가지 이동 방법을 모두 사용해야 한다. 이러한 제약 아래에서 나이트가 체스판에서 방문할 수 있는 최대 칸 수를 찾아야 한다.해결 전략문제 해결을 위해 ..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이 문제는 단순히 가로길이와 세로길이만 구한다면 쉽게 풀이할 수 있었다. 그리고 각 길이는 주어진 꼭짓점을 활용하여 구할 수 있었다. class Solution { fun solution(dots: Array): Int { val x1 = dots[0][0] val y1 = dots[0][1] val x2 = dots[1][0] val y2 = dots[1][1] val x3 = dots[2][0] val y3 = dots[2][1] val xLength = maxOf(Math.abs(x2 - x1), Mat..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내가 생각하는 이 문제의 핵심은, 이동한 좌표가 주어진 board범위를 벗어나지 않고 계산하도록 하는 것이다. class Solution { fun solution(keyinput: Array, board: IntArray): IntArray { val boardWidth = board[0] val boardHeight = board[1] var x = 0 var y = 0 keyinput.forEach { key -> when (key) { "up" -> y = minOf(y + 1, boardHeight ..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이는 간단하다. 가장 큰 값과 두번째로 큰 값 끼리의 곱과, 가장 작은 값과 두번째로 작은값 끼리의 곱 중 더 큰 값을 반환하면 된다. class Solution { fun solution(numbers: IntArray): Int { var max1 = Int.MIN_VALUE var max2 = Int.MIN_VALUE var min1 = Int.MAX_VALUE var min2 = Int.MAX_VALUE for (number in numbers) { if (number >= max1) { max..
KEEMSY
'Kotlin' 태그의 글 목록