반응형

코테 12

행렬의 곱셈

안녕하세요. KataRN입니다. 오늘은 행렬의 곱셈에 대해서 알아보겠습니다. 행렬의 곱셈의 경우 행과 열을 곱해야되는데 필요할때마다 저는 돌려서 쓰는데 효율이 별로 안좋은것 같아서 효율좋은 코드를 남기려고합니다. 이건 제가 임의로 만든 코드인데 그냥 그럭저럭인것 같아요... func solution(_ arr1:[[Int]], _ arr2:[[Int]]) -> [[Int]] { var answer = Array(repeating: Array(repeating: 0, count: arr2[0].count), count: arr1.count) let arr3 = convertArr(arr2) for i in 0..

글자 < - > 숫자 변환 UnicodeScalar() 다루기

안녕하세요. KataRN입니다. 오랜만에 글을 올리게 되었습니다. 일도 바빠지고 개인적인 프로젝트하느라 바빠서... 다시 마음을 다잡고 조금씩이라도 글을 올려보겠습니다. 오늘은 UnicodeScalar()에 대해 알아보겠습니다. 여러분 문자들을 숫자로 변환이 가능하다는 사실을 알고계신가요? 16진, 10진 등으로 변환이 가능합니다. 코딩테스트를 할때 많이 접하셨을겁니다. 저는 코딩테스트 외에도 Objective-C를 다룰때 종종 다뤘습니다. SDK가 Objective-C였는데 16진을 이용하고있어서 많이 봤습니다. 오늘은 코딩테스트를 기준으로 설명해보겠습니다. 영어 대문자는 65~90, 소문자는 97~122로 이루어져있습니다. 바꾸는 함수는 많은데(asciiValue(), UnicodeScalar()....

백준 시간초과 해결방법

안녕하세요. KataRN입니다. 오늘은 백준 시간초과 해결방법에 대해 알려드리려고합니다. 우선 이 방법은 알고리즘을 사용했음에도 시간초과가 되는 현상의 경우에 사용하시기 바랍니다. 알고리즘을 맞게 썼음에도 시간초과가 되는 경우가 있습니다. 그전에 잠깐! 백준에서 코딩테스트를 하기 위해서는 Command Line Tool을 사용해야합니다. 아래 글을 참고해주세요~(CommandLineTool : https://katarnios.tistory.com/37) import Foundation final class FileIO { private let buffer: Data private var index: Int = 0 init(fileHandle: FileHandle = FileHandle.standardIn..

백준에서 코딩테스트 해보기

안녕하세요. KataRN입니다. 오늘은 백준으로 코딩테스트 해보는법에 대해 알아보겠습니다. 프로그래머스에서는 Playground로 가능했었는데 백준에서 해보려니 안되더라구요... 백준은 Command Line Tools 라는 것을 이용해서 데이터를 입력받고 출력하는 방식을 이용해야합니다. 처음 접하는 사람은 이해하기 힘들지만 천천히 따라해보면 쉽습니다. 오늘도 차례차례 해보도록 합시다. 1. 제일 중요한 단계입니다. Xcode를 실행합니다. 2. Create a new Xcode project로 새로운 프로젝트를 만듭니다. 그리고 macOS에 있는 Command Line Tool을 선택합니다. - Swift언어로 만들어줍시다! 3. 자 이제 준비는 다 되었습니다. 이걸 어떻게 쓰는지 추가 설명을 드리겠습..

<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를 하였더..

반응형