코딩테스트 준비(kotlin)/기본14 [프로그래머스 kotlin] n^2 배열 자르기 문제와 영상처럼 이차원 배열을 구현하여 직접 대입 후 문제를 해결하려고 시도한다면 시간초과가 발생 할 것 이다. 제한사항 중 1 배열에 삽입하는데 O(n^2) 시간 발생 따라서 2차원 배열을 직접 구현하지 않고 1차원 배열을 이용해 문제를 풀어야 한다. 규칙을 찾았다 ! !첫 번째 규칙, 여기서 n x n 배열일 때, (i / n) 은 행의 값이 되고, (i % n)은 열의 값이 된다. 위의 사진으로 예시를 들면, 7/4 = 1 행의 값은 1 ////// 7%4 = 3 열의 값은 3 두 번째 규칙, 배열의 자리의 값은 배열 인덱스의 (MAX(행,렬)+1)의 값이다! 예를 들자면, (1,3)의 값은 4 ! (0,3).. 2024. 6. 19. [프로그래머스] 연속 부분 수열 합의 개수 문제 설명철호는 수열을 가지고 놀기 좋아합니다. 어느 날 철호는 어떤 자연수로 이루어진 원형 수열의 연속하는 부분 수열의 합으로 만들 수 있는 수가 모두 몇 가지인지 알아보고 싶어졌습니다. 원형 수열이란 일반적인 수열에서 처음과 끝이 연결된 형태의 수열을 말합니다. 예를 들어 수열 [7, 9, 1, 1, 4] 로 원형 수열을 만들면 다음과 같습니다.원형 수열은 처음과 끝이 연결되어 끊기는 부분이 없기 때문에 연속하는 부분 수열도 일반적인 수열보다 많아집니다.원형 수열의 모든 원소 elements가 순서대로 주어질 때, 원형 수열의 연속 부분 수열 합으로 만들 수 있는 수의 개수를 return 하도록 solution 함수를 완성해주세요. 풀이 코드 fun solution(elements: IntArray).. 2024. 6. 18. [프로그래머스] 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] 콜라 문제 문제 링크 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. 이전 1 2 3 4 다음