본문 바로가기

전체 글

(96)
[프로그래머스] N개의 최소공배수 with Kotlin 문제 N개의 숫자가 들의 최소공배수를 구하는 문제 풀이 과정 숫자 2개씩 순차적으로 최소공배수를 구한다. 최소공배수 : A * B / 최대공약수 코드 class Solution { fun solution(arr: IntArray): Int { var answer = arr[0] arr.forEach{ answer = lcm(answer, it) } return answer } //최소 공배수 fun lcm(a:Int, b:Int) = a * b / gcd(a, b) //최대 공약수 fun gcd(a:Int, b:Int):Int{ return if (a < b){ if (a == 0) b else gcd(a, b % a) } else{ if (b == 0) a else gcd(b, a % b) } } }
[프로그래머스] 카펫 with Kotlin 문제 중앙에 노란색, 테두리 갈색 카펫에서 노란색과 갈색 개수만 알고 있을 때, 카펫의 가로 세로 크기를 순서대로 배열에 담아 return 하는 문제 제한 사항 갈색 격자의 수 brown은 8이상 5,000 이하인 자연수 노란색 격자의 수 yellow는 1이상 2,000,000 이하인 자연수 카펫의 가로의 길이는 세로와 같거나 세로보다 길다. 풀이 방법 가로 >= 세로 이므로 세로 길이의 최대는 yellow+brown 값의 제곱근 노란색 가로 = yellow / 세로 노란색 격자를 바탕으로 갈색 격자의 수를 구한 뒤 brown 값과 같으며, yellow % 세로 == 0 이면 카펫의 크기 코드 import kotlin.math.sqrt class Solution { fun solution(brown: I..
[프로그래머스] 피보나치 수 with Kotlin 문제 n번째 피보나치 수의 값에 1234567을 나눈 나머지 값을 구하는 문제 제한 사항 2