반응형

프로그래머스 13

약수의 개수 구하기

안녕하세요. KataRN 입니다. 오늘은 약수의 개수를 구해보겠습니다. 사실 1부터 N까지의 숫자로 나눠서 나머지가 0인 것을 구하면 됩니다. 하지만 코딩테스트를 공부하면서 느낀게 다른 방법이 있으면 알아두는게 좋은것같아서 짧게나마 기록하고자 합니다. 제곱근에 소수점이 없으면 약수의 갯수가 홀수고 있으면 짝수입니다. 예제 : 프로그래머스 약수의 개수와 덧셈 (https://programmers.co.kr/learn/courses/30/lessons/77884) import Foundation func solution(_ left:Int, _ right:Int) -> Int { var answer = 0 for number in left...right{ if floor(sqrt(Double(number))..

DP(동적계획법)

안녕하세요. KataRN입니다. 오늘은 DP에 대해 알아보겠습니다. DP란 탈영병들을 잡는 병사들을 일컫는... 죄송합니다. DP(Dynamic Programming)란 ? 일반적으로 주어진 문제를 풀기 위해서, 문제를 여러 개의 하위 문제(subproblem)로 나누어 푼 다음, 그것을 결합하여 최종적인 목적에 도달하는 것이다. 각 하위 문제의 해결을 계산한 뒤, 그 해결책을 저장하여 후에 같은 하위 문제가 나왔을 경우 그것을 간단하게 해결할 수 있다. 이러한 방법으로 동적 계획법은 계산 횟수를 줄일 수 있다. 특히 이 방법은 하위 문제의 수가 기하급수적으로 증가할 때 유용하다. 출처 : 나무위키 핵심은 저장입니다. Memoization(메모이제이션)이라고 불리기도합니다. 동일한 계산을 반복해야할 때,..

DFS, BFS에 대해 알아봅시다.

안녕하세요. KataRN입니다. 오늘은 DFS, BFS에 대해 알아보겠습니다. DFS : Depth First Search(깊이 우선 탐색) weigh을 가지지 않는 방향 그래프에서 모든 경우를 구해볼 때 이 DFS를 사용됩니다. 예를 들면 1부터 N까지의 자연수 중 n개의 집합을 만들 수 있을 때, 가능한 모든 순열을 구해야 할 때 사용할 수 있습니다. 스택을 통해 구현하며, 재귀함수를 통해 구현합니다.(함수가 호출되면 스택 영역에 쌓이게 된다. 효율성이 떨어지는 이유) 코드로 확인해 볼게요. func practiceDFS(numbers: [Int], m: Int) { // 1. 궁극적으로 구하고자 하는 값. 재귀 함수의 외부에 선언되었다. 재귀 함수를 돌며 특정 기준에 만족할 경우 이 값을 변경할 것..

재귀함수, 꼬리재귀

안녕하세요. KataRN입니다. 여러분 재귀함수를 아시나요? 재귀함수... 어렵게 생겼지만 어렵지 않습니다. 재귀함수에 대한 이해를 돕기위해 우선 나무위키에서 퍼온 내용을 보시죠 어떻습니까? 멀티탭을 사용하기위해 멀티탭에 멀티탭코드를 꽂아서 사용하는... 멀티탭을 쓰기위해 멀티탭을 통해 전기를 가져오고 그 전기는 멀티탭에서 그 멀티탭의 전기는 멀티탭에서... 도르마무... 거래를 하러왔다... 하하..다시 이야기로 돌아가서 멀티탭을 사용하기 위해.. 도르마무... 죄송합니다. 다른 내용을 보도록하죠. 결과를 얻기위해 함수속에 함수(자신)을 넣는 것입니다. 가장 쉬운 예제는 팩토리얼입니다. 함수로 예를 들겠습니다. import Foundation func factorial(_ n : Int) -> Int ..

순열과 조합

안녕하세요 KataRN입니다. 묻지도 따지지도 않고 순열과 조합이 필요한 경우가 있습니다. 그래서 오늘은 순열과 조합에 대해 알아보려고 합니다. 들리는 소문에 의하면 파이썬은 기본제공이 있다던데... swift는? 네네 없습니다... 또 서론이 길다구요? 네 코드보시죠 우선 순열입니다. func permute(_ nums: [Int], _ targetNum: Int) -> [[Int]] { var result = [[Int]]() var visited = [Bool](repeating: false, count: nums.count) func permutation(_ nowPermute: [Int]) { if nowPermute.count == targetNum { result.append(nowPermu..

<Reduce>함수 더하기 추론(조금...)

안녕하세요. KataRN입니다. 오늘은 Reduce 함수에 대해 알아보겠습니다.(이번엔 추론도 더해서 알아보겠습니다.) reduce 번역하면 "줄이다, 감소하다" 입니다. 하지만 이 함수는 덧셈 함수라고 할 수 있습니다. 우선 애플 공식문서를 봅시다. reduce(_:_:) Applies a closure that collects each element of a stream and publishes a final result upon completion. Declaration func reduce(_ initialResult: T, _ nextPartialResult: @escaping (T, Self.Output) -> T) -> Publishers.Reduce Return Value A publish..

<Filter> 함수 더하기 추론(조금...)

안녕하세요. KataRN입니다. 오늘은 Filter 함수에 대해 알아보겠습니다. 공식문서부터 알아보겠습니다. filter(_:) Returns an array containing, in order, the elements of the sequence that satisfy the given predicate. Declaration func filter(_ isIncluded: (Self.Element) throws -> Bool) rethrows -> [Self.Element] Parameters isIncluded A closure that takes an element of the sequence as its argument and returns a Boolean value indicating whe..

<components>, <split> (글자 자르기)

안녕하세요 KataRN입니다. 오늘은 String을 자르는 방법들에 대해 알아보려합니다. 우선 크게 2가지가 있습니다.(알아본게 2개라는뜻입니다. 더있을지도...) 1. components(separatedBy:) Returns an array containing substrings from the receiver that have been divided by a given separator. func components(separatedBy separator: String) -> [String] 흠 string을 넣으면 배열안에 string을 넣어서 돌려받게 생겼네요?예제로 확인해보겠습니다. var str = "Hello, My name is Pane, Go to Hell" var slice = str..

<replacingOccurrences> (문자 변환)

안녕하세요. KataRN입니다. 오늘은 replacingOccurrences 함수에 대해 알아보겠습니다. 이 함수는 글자에서 글자를 찾아 글자를 바꾸는 함수입니다. 응? 가독성 이런식으로 할꺼야? (죄송합니다..) 문자열 치환, 변경 수정 변환 등.. 암튼 글자를 바꾸는겁니다. 우선 오늘도 apple 공식 문서를 먼저 확인하겠습니다. replacingOccurrences(of:with:) Returns a new string in which all occurrences of a target string in the receiver are replaced by another given string. func replacingOccurrences(of target: String, with replacemen..

<enumarated> 함수

안녕하세요. KataRN입니다. 저번시간에 배운 zip함수 기억하십니까? Array와 관련된 함수 중 하나인데 zip함수에서 내용이 너무 없던것 같아서 보충수업 들어갑니다. 오늘 배울 함수는 enumarated 함수 입니다. enumarated란? 번역하면 '열거' 입니다. enumerated() Returns a sequence of pairs (n, x), where n represents a consecutive integer starting at zero and x represents an element of the sequence. func enumerated() -> EnumeratedSequence 애플 문서에 의하면 이렇답니다..ㅎㅎ.. 바로 예제 들어갑니다. let testString =..

반응형