[##_revenue_list_upper##]

전체 글

데프리프터의 데브리프팅
· Swift
서론 Swift를 사용해서 iOS 개발을 하는 사람이라면 누구나 디자인패턴에 대해서 얘기를 들어보는 것은 물론 직접 사용하고 고민해 봤을 것입니다. 개발자이면서 동시에 여러 회사를 준비하는 입장에서 예상질문이나 JD에 항상 등장하는 것이 MVVM 경험에 대한 것이고, 그래서 오늘은 실제로 현업, JD에서 가장 자주 나오는 디자인패턴에 대해서 알아보려 합니다. 실제로 디자인 패턴을 선택할 때는 코드의 유지보수성 확장성 재사용성 을 향상하는데 중요한 역할을 하는 것을 인지하고 각각의 패턴에 대한 이해와 컨셉에 대해서 이해하는 것이 중요한 것 같습니다. 각각 패턴에 대해서 알아보고 간단하게, Count Example을 작성해 보겠습니다. 본론 먼저, 가장 많이 등장하는 MVVM 입니다. MVVM ( Model..
· Algorithm
한 문제 푸는데 드는 시간이 왜 자꾸 늘어나는지.. 간단하게 생각하면 되는데 복잡하게 생각하게 되는 것 같다.. 백준 10798 번 10798번: 세로읽기 총 다섯줄의 입력이 주어진다. 각 줄에는 최소 1개, 최대 15개의 글자들이 빈칸 없이 연속으로 주어진다. 주어지는 글자는 영어 대문자 ‘A’부터 ‘Z’, 영어 소문자 ‘a’부터 ‘z’, 숫자 ‘0’ www.acmicpc.net 풀이 1 var result = Array(repeating: Array(repeating: "", count: 15), count: 5) for i in 0...4 { var word = readLine()!.map { String($0) } var lastIndexOfWord = word.count result[i].rep..
· 기록
쏘카 코딩테스트가 있었고, 이번주에는 또 카카오 인턴십 코딩테스트가 있다. 는 핑계로 아이러니하게도 알고리즘 공부를 놓게 됐다.. 애초에 시작은 언어에 대한 이해와 다양한 함수들을 사용하면서 기본을 탄탄히 하다보면 코딩테스트도 대비 될 거라고 막연하게 생각했던 것 같은데, 구몬 산수 문제 500장 푼다고 3차 함수 문제를 풀 수 있게 되는게 아니듯이 안일하게 생각했고 접근 방식을 다르게 했어야 했다는 점을 인정할 수 밖에 없었다. 막상 코테를 앞두고 프로그래머스 풀려고했더니 LV1도 못 건드리고.. '이대로 괜찮은가...' '지금와서 한 문제라도 더 푸는 게 과연 채용과정에 무슨 의미가 있는가..' 내가 제일 싫어하는 방식의 생각들을 하게됐다. 그래서 솔직히 창피하고 자존심 상하지만 이번 분기에 코테를 ..
· Swift
mapmap 은 이미 너무 많이 알다시피 forEach와 같은 기능을 합니다let arr = [1,2,3,4,5]arr.map { print($0, terminator: " ") }// 1 2 3 4 5  flatMap[정의]func flatMap(_ transform: (Self.Element) throws -> SegmentOfResult) rethrows -> [SegmentOfResult.Element] where SegmentOfResult : Sequence transform 파라미터에 self의 요소를 인자로 받아서 각 시퀀스요소의 변환을 한 다음 array를 리턴한다고 하네요. [ 쓰임 ] Apple 문서에서도 잘 나와 있지만 Flatmap은 다음 두 가지 역할을 합니다. 1. flatte..
· Algorithm
백준 2566 2566번: 최댓값 첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 위치한 행 번호와 열 번호를 빈칸을 사이에 두고 차례로 출력한다. 최댓값이 두 개 이상인 경우 그 중 한 곳의 위치를 출력한다. www.acmicpc.net FlatMap 을 사용하여 2차원 배열을 미분하는 방법과 (미분 이라는 표현이 적절할까..?) 이중배열을 돌려서 푸는 방법이 있었다. Flatmap Flatmap 에 대한 사용법은 여기에 정리해 뒀다. var matricks: [[Int]] = [] var result = 0 // 이차원 배열 생성 for _ in 1...9 { let line = readLine()!.split(separator: " ").map { Int($0)! } matricks.append(..
· Algorithm
백준 2738번 이차원 배열을 사용해서 이중 반복문을 연습할 수 있는 문제였다. let input = readLine()!.split(separator: " ").map { Int($0)! } let n = input[0], m = input[1] var A: [[Int]] = [] var B: [[Int]] = [] var result: [[Int]] = [] // set A for _ in 0..
[##_revenue_list_lower##]
공부가 밥먹여주더라
데브리프터의 개발 리프팅