본문 바로가기

Dev/Algorithm44

간만의 알고리즘 공부 - 18 (내적) 문제 설명길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해주세요.이때, a와 b의 내적은 a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1] 입니다. (n은 a, b의 길이)제한사항- a, b의 길이는 1 이상 1,000 이하입니다.- a, b의 모든 수는 -1,000 이상 1,000 이하입니다.입출력 예내가 푼 방법fun solution(a: IntArray, b: IntArray): Int { return a.foldIndexed(0) {index, sum, item -> sum + item * b[index]}}  이전에 풀었던 음양 더하기 문제가 생각났고 똑같다고 판단되어서 fol.. 2024. 7. 17.
간만의 알고리즘 공부 - 17 (핸드폰 번호 가리기) 문제 설명이 전화 키패드에서 왼손과 오른손의 엄지손가락만을 이용해서 숫자만을 입력하려고 합니다.맨 처음 왼손 엄지손가락은 * 키패드에 오른손 엄지손가락은 # 키패드 위치에서 시작하며, 엄지손가락을 사용하는 규칙은 다음과 같습니다.- 엄지손가락은 상하좌우 4가지 방향으로만 이동할 수 있으며 키패드 이동 한 칸은 거리로 1에 해당합니다.- 왼쪽 열의 3개의 숫자 1, 4, 7을 입력할 때는 왼손 엄지손가락을 사용합니다.- 오른쪽 열의 3개의 숫자 3, 6, 9를 입력할 때는 오른손 엄지손가락을 사용합니다.- 가운데 열의 4개의 숫자 2, 5, 8, 0을 입력할 때는 두 엄지손가락의 현재 키패드의 위치에서 더 가까운 엄지손가락을 사용합니다.     - 만약 두 엄지손가락의 거리가 같다면, 오른손잡이는 오른손 .. 2024. 7. 17.
간만의 알고리즘 공부 - 16 (핸드폰 번호 가리기) 문제 설명프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.제한 조건- phone_number는 길이 4 이상, 20이하인 문자열입니다. 입출력 예  내가 푼 방법fun solution(phone_number: String): String { val hiddenPosition = phone_number.length - 4 return phone_number.mapIndexed { index, number -> if (index 큰 고민없이 풀었더니 점수가 낮았고 역시 시간이 .. 2024. 7. 16.
간만의 알고리즘 공부 - 15 (제일 작은 수 제거하기) 문제 설명정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다.제한 조건- arr은 길이 1 이상인 배열입니다.- 인덱스 i, j에 대해 i ≠ j이면 arr[i] ≠ arr[j] 입니다. 입출력 예  내가 처음에 푼 방법fun solution(arr: IntArray): IntArray { return if (arr.size == 1) { intArrayOf(-1) } else { arr.sortedArrayDescending()... 2024. 7. 14.
간만의 알고리즘 공부 - 14 (없는 숫자 더하기) 문제 설명0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요.제한사항- 1 ≤ numbers의 길이 ≤ 9    - 0 ≤ numbers의 모든 원소 ≤ 9    - numbers의 모든 원소는 서로 다릅니다.. 입출력 예 내가 푼 방법 fun solution(absolutes: IntArray, signs: BooleanArray): Int { return 45 - numbers.sum()} 풀었을 때 1점만 받은것 보니 그닥 잘풀지 못한듯 합니다. 어떤 방법이 더 효율적인지 궁금해서 다른 사람 코드를 봤습니다.  다른 사람 코.. 2024. 7. 10.
간만의 알고리즘 공부 - 13 (음양 더하기) 문제 설명어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요.제한사항- absolutes의 길이는 1 이상 1,000 이하입니다.    - absolutes의 모든 수는 각각 1 이상 1,000 이하입니다.- signs의 길이는 absolutes의 길이와 같습니다.    - signs[i] 가 참이면 absolutes[i] 의 실제 정수가 양수임을, 그렇지 않으면 음수임을 의미합니다. 문제를 읽었을때 해당 귤 크기별로 리스트를 만들 생각을 했었고 없는 크기의 귤 리스트는 제거하고 큰 크기별로 리스트를 가.. 2024. 7. 10.