목록2024/11/02 (15)
HIT해
1. 이분 탐색이란?이분 탐색은 정렬된 배열에서 특정 값을 찾을 때 사용하는 알고리즘으로, 탐색 범위를 절반씩 줄여가며 원하는 값을 찾는 방법입니다. 2. 기본 구현var start = 0var end = Int.maxwhile start target { end = mid - 1 } else { start = mid + 1 } } 3. 결과값 갱신 주의점최솟값을 찾을 때 (Lower Bound)func findMinimum(_ array: [Int], _ target: Int) -> Int { var start = 0 var end = array.count - 1 var result = -1 whil..
https://school.programmers.co.kr/learn/courses/30/lessons/84512 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 설명사전에 알파벳 모음 'A', 'E', 'I', 'O', 'U'만을 사용하여 만들 수 있는, 길이 5 이하의 모든 단어가 수록되어 있습니다. 사전에서 첫 번째 단어는 "A"이고, 그다음은 "AA"이며, 마지막 단어는 "UUUUU"입니다.단어 하나 word가 매개변수로 주어질 때, 이 단어가 사전에서 몇 번째 단어인지 return 하도록 solution 함수를 완성해주세요.제한사항word의 길이는 1 이상 5 이하입니다.word는 알파벳 ..
https://school.programmers.co.kr/learn/courses/30/lessons/42842 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 설명Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다.Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 갈색으로 색칠된 격자의 개수는 기억했지만, 전체 카펫의 크기는 기억하지 못했습니다.Leo가 본 카펫에서 갈색 격자의 수 brown, 노란색 격자의 수 yellow가 매개변수로 주어질 때 카펫의 가로, 세로 크기를 순서대로 배열에 담아 return ..
https://school.programmers.co.kr/learn/courses/30/lessons/49189 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 이전에 풀었던 문제지만 복습삼아 한번 더 풀어보았다. 인접 리스트 만드는 방법 var graph = [[Int]](repeating: [], count:n+1) for i in edge { graph[i[0]].append(i[1]) graph[i[1]].append(i[0]) } 큐 만드는 방법var queue = [Int]()var visited = [Bool](repeating:false, cou..
https://school.programmers.co.kr/learn/courses/30/lessons/67257 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 빡구현 문제다. 이런 양의 구현요구를 하면 이게 정답으로 처리가 될까? 확신하지 않으면 불안할거같다.. import Foundationimport Foundationfunc solution(_ expression:String) -> Int64 { var oper = ["+","-","*"] var oop = [[String]]() // 조합의 경우의 수 func combi(_ targetArr : [Strin..
1. 순열이란?순열은 주어진 원소들로 만들 수 있는 모든 순서의 조합을 의미합니다. 가장 쉽게 설명하자면, n개의 원소 중에서 r개를 선택하여 순서를 고려해 나열하는 것입니다.예시를 통한 이해예를 들어, [1, 2, 3] 이라는 세 개의 숫자가 있다고 해볼까요?이 중에서 2개를 선택하여 나열하는 경우의 수는 다음과 같습니다.[1, 2][1, 3][2, 1][2, 3][3, 1][3, 2] 2. 순열의 종류2.1 일반 순열 (Permutation)각 원소를 한 번씩만 사용nPr = n!/(n-r)! 의 공식 사용예: [A, B, C] 중 2개 선택 → [A,B], [A,C], [B,A], [B,C], [C,A], [C,B]2.2 중복 순열 (Permutation with Repetition)각 원소를 여러..
중복없는 Target에서 원하는 만큼의 조합 구하기var oper = ["+","-","x"] var oop = [[String]]() // 조합의 경우의 수 func combi(_ targetArr : [String], _ arr:[String]) { if arr.count == 3 { oop.append(arr) return } for i in 0...2{ if !arr.contains(oper[i]){ combi(targetArr, arr + [targetArr[i]]) } } } combi(oper,[]) ta..