반응형

KataRN 11

[AutoLayout]UILabel, Hugging Priority, Compression Resistance Priority, Intrinsic Content Size

안녕하세요. KataRN입니다. 오늘은 Hugging priority, Compression Resistance priority에 대해서 알아보겠습니다. 스토리보드에서 가끔 제 생각에는 문제가 없는데 빨간줄이 생기면서 문제가 있다고 뜨는겁니다. 뭐 다양한 이유가 있겠지만 그중 Hugging priority, Compression Resistance priority에 의해서 해결되는 경우를 다뤄볼까 합니다. 이걸로 해결되는 분들도 많으실거에요. 그렇지만 이번 글의 목적은 공유보다는 제가 헷갈려서 글로 작성해봅니다.ㅎㅎ 예제는 단순합니다. 스토리보드를 열고 ViewController에 UILabel을 두개 평행하게 위치시킵니다. UILabel 각각 위 왼쪽 오른쪽 아래 20의 거리를 줍니다. 저렇게 빨갛..

최단거리 구하기 <다익스트라(Dijkstra)>, <플로이드 워셜(Floyd Warshall)>

안녕하세요. KataRN입니다. 항상 글을 써야지... 써야지... 하면서 미루게 되네요.. 크흠... 오늘은 최단 거리를 구하는 알고리즘에 대해 써보려고 합니다. 저는 최단거리하면 6칸이면 aaa와bb로 나눠서 3! * 2! 했던 생각이 나네요... 하지만 이걸로는 풀수가 없었습니다... 흑흑... 자 우리는 이제 다음 단계로 넘어가봅시다. 우선 최단거리와 관련된 알고리즘이 2가지가 있습니다. 1. 다익스트라(Dijkstra) 2. 플로이드 워셜 알고리즘(Floyd Warshall Algorithm) 오늘은 2가지 모두 소개하려고합니다. 1. 다익스트라(Dijkstra)란? - 음의 가중치가 없는 그래프의 한 정점(頂點, Vertex)에서 모든 정점까지의 최단거리를 각각 구하는 알고리즘(최단 경로 문제..

순열과 조합

안녕하세요 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..

<Map> 함수 더하기 추론<조금>, <compactMap>, <flatMap>

안녕하세요. KataRN입니다. 오늘은 함수 Map에 대해 정리해보려고합니다. 제가 프로그래머스 1단계를 쭉 풀면서 다른사람들이 푼 내용과 비교도 해봤는데 map, reduce, filter 이 3가지를 쓴 풀이들이 코드가 깔끔합니다. 그리고 추론을 하면 할 수록 코드는 더 간결해지죠.(단 상대적으로 효율성은 떨어지더라구요...) 문제는 코드가 간결한 만큼 읽는 순간 이해가 빠르게 되느냐인데 제가 추론에 약해서인지 처음엔 힘들었습니다. 그래서 이번 기회에 3가지 함수에 대해 정리를 하고 응용도 해보겠습니다. 우선 공식문서를 통해 알아보도록 하죠. map(_:) Returns an array containing the results of mapping the given closure over the seq..

<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 =..

<zip> 함수

안녕하세요, KataRN입니다. 오늘은 zip에 대해 알아보겠습니다. 오늘도 열심히 알고리즘을 풀고있는데 배열 2개를 어떻게 요리를 못할까 하다가 알게된 함수입니다. func zip(_ sequence1: Sequence1, _ sequence2: Sequence2) -> Zip2Sequence where Sequence1 : Sequence, Sequence2 : Sequence 보시는 바와 같이 zip를 사용하기 위해서는 2개의 배열이 필요합니다.(많아도 적어도 안됩니다.) 예제로 설명 드리겠습니다. let aArr = [1,2,3,4,5] let bArr = ["a","b","c","d","e"] let zipArr = zip(aArr,bArr) print(zipArr) 위 처럼 print를 하였더..

소수 구하기

안녕하세요. KataRN입니다. 코테 문제를 풀다보면 소수를 구하는 문제가 많습니다. 보통 소수관련 문제가 나오면 효율성도 좋아야 되더라구요... 그리고 소수와 효율성하면 꼭 언급하는 이론이 있습니다. 그건 바로 '에라토스테네스의 체' 입니다. 소수를 하나하나 구하는것보다 아래의 그림처럼 소수의 배수를 제거하는것이 빠릅니다. 이를 포함하여 소수판별코드, 소수의개수, 소수구하기 등을 코드로 구현해봤습니다. 소수 판별 코드(swift) func isPrime(_ num: Int) -> Bool { if num == 0 { return false } if num < 4 { return num == 1 ? false : true } for i in 2...Int(sqrt(Double(num))) { if num..

반응형