본문 바로가기

코딩테스트 준비(kotlin)47

[프로그래머스] N개의 최소공배수 (kotlin) 문제해결 point두 수의 최대공약수 구하기 ->  유클리드 호재법 https://ko.wikipedia.org/wiki/%EC%9C%A0%ED%81%B4%EB%A6%AC%EB%93%9C_%ED%98%B8%EC%A0%9C%EB%B2%95 1. 유클리드 호재법을 사용하여 배열에 인접한 두 수의 최대공약수를 구한 뒤,     (두 수의 곱 나누기 최대공약수= 최소공배수) 법칙을 이용하여 최소공배수를 구한다. 2. 구해진 최소공배수를 answer에 반영하고 다음 3번째 인덱스와 반영된 answer의 최소공배수를 구한다. 4. 이와 같은 방법으로 마지막 인덱스의 값과도 최소공배수를 구해 answer에 반영합니다. 전체코드fun solution_l(arr: IntArray): Int { var answer .. 2024. 6. 13.
[프로그래머스] 카펫 (kotlin) 문제 설명문제 해결 Point(행- 2) * (열- 2 ) = yellow의 개수이다. 주어진 brown과 yellow의 합은 전체 카펫의 넓이이다. 그러므로 문제에서 정답인 return의 값은brown과 yellow의 합의 약수를 구한 뒤, 곱했을 때 합이 되는 수의 조합을 고려하면 된다. 예를들어 brown : 10 yellow : 2 일 경우 합은 12 나올 수 있는 경우의 수는 (1, 12) , (2, 6) ,(3, 4) (4, 3) ,(6, 2), (12, 1)  이다. 일단 가로의 길이가 세로보다 길거나 같다고 제한사항에 있으므로 경우의 수가 (1, 12) , (2, 6) , (3, 4)은 제외한다. (4, 3) (6, 2)  (12, 1) 이 조합중에서 , (행-2)*(열-2)=yellow .. 2024. 6. 11.
[kotlin] 프로그래머스 둘만의 암호 fun solution(s: String, skip: String, index: Int): String { //"aukks" "wbqd" 5 val s = s.toCharArray() val skip = skip val index = index for (i in 0 until s.size) { //s의 길이만큼 var count = 0 while (count 2024. 5. 30.
[kotlin] 콜라 문제 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/132267fun solution(a: Int, b: Int, n: Int): Int { var a = a var b = b var cock = 0 var n = n while (n >= a) { cock = cock + ((n / a) * b) n = ((n / a) * b) + (n % a) } // 4 2 10 // 8개주고 -> 4개받고 2개남고 // 4개주고 -> 2개받고 2개남고 //->4개주고 ->2개받고 // -> 결과 8개 return cock} 2024. 5. 28.