일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 자료구조
- 환급챌린지
- 패스트캠퍼스
- HTML
- 연결리스트생성
- hig
- eventcapturing
- Components
- eventbubbling
- 사이드프로젝트10개기술스택으로구현하는풀스택서버리스프로젝트withReact
- 패캠챌린지
- 연결리스트삭제
- 이벤트버블링
- MVMM
- JavaScript
- 패캠인강후기
- 패스트캠퍼스후기
- 연결리스트삽입
- 수강료0원챌린지
- 오공완
- ios
- 직장인자기계발
- 이벤트캡처링
- 프로그래머스
- 스위프트
- 코딩테스트
- stopPropagation
- swift
- 직장인인강
- 실패율
- Today
- Total
목록swift (27)
날쌘 개발자
타겟 넘버 문제 설명 n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+1 = 3 +1+1-1+1+1 = 3 +1+1+1-1+1 = 3 +1+1+1+1-1 = 3 사용할 수 있는 숫자가 담긴 배열 numbers, 타겟 넘버 target이 매개변수로 주어질 때 숫자를 적절히 더하고 빼서 타겟 넘버를 만드는 방법의 수를 return 하도록 solution 함수를 작성해주세요. 코드 import Foundation func solution(_ numbers:[Int], _ target:Int) -> I..
guard문 간단하게 설명하자면 조건을 걸러낼 때 사용한다. 보통 함수의 시작점에 넣어 반드시 가져가야 할 조건들을 검사하는 용도라고 한다. if문으로도 대체가능하지만, 가독성면에서 훨씬 깔끔하기 때문에 함수의 초반부터 걸러야 할 조건들이 있다면 보기쉽고 깔끔하게 걸러낼 수 있다. 생긴 모습을 보자면 guard 조건 else {조건이 false일때 실행될 구문} 이렇게 생겼다. 아까 말한대로 조건을 걸러낸다는 표현이 딱 맞는 친구이다. guard 뒤에 조건을 넣고, 조건이 false일 경우 else 뒤의 구문이 실행되는 형식이다. if문을 덕지덕지 붙히는것보다 확실히 가독성이 좋아 보인다. 활용한 예시 func plusOne(num: Int) { guard num < 10 else {return} pri..
시저 암호 문제 설명 어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 예를 들어 "AB"는 1만큼 밀면 "BC"가 되고, 3만큼 밀면 "DE"가 됩니다. "z"는 1만큼 밀면 "a"가 됩니다. 문자열 s와 거리 n을 입력받아 s를 n만큼 민 암호문을 만드는 함수, solution을 완성해 보세요. func solution(_ s:String, _ n:Int) -> String { let alpha = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"] var res..

delegate delegate(델리게이트)는 거의 안보이는곳이 없을정도로 IOS를 공부하다보면 자주 보이는.. 그만큼 중요한 개념이다. 직역하면 '대리자' 혹은 '위임자' 라고들 부르고 정의를 검색해보면 '소프트웨어 엔지니어링에서 Delegate 패턴은 객체 지향 디자인 패턴중 하나로써 상속과 비슷하게 재사용을 가능하게 해주는 패턴' 이라고 나오는데, 이놈이 하는일은 대리자 라는 말 그대로 일을 대신해준다고 보면 되겠다. 조금 풀어 설명하자면 - 객체 지향 프로그래밍에서 하나의 객체가 모든 일을 처리하는것이 아닌, 처리 해야 할일 중 일부를 다른 객체에 넘겨 대신 해주는 게 델리게이트 패턴 이라고 한다. 이 델리게이트라는놈을 알기 위해서는 먼저 저번에 공부했던 프로토콜에 대해 잘 알아야한다. 프로토콜은..

MVVM 저번에 설명했던 MVC패턴과 마찬가지로 앱개발에 자주 사용되는 디자인 패턴중 하나이다. 다만 현재 내가 주로 사용하는 프레임워크인 UIKit는 MVC패턴을 주로 기반으로 하는 반면, MVVM패턴은 SwiftUI프레임워크에서 주로 사용하는 디자인 패턴이라고 한다. 이번에 작게 개인적으로 진행하게된 프로젝트가 UIkit프레임워크를 기반으로 하고 MVMM패턴을 채택한 프로젝트라, 겸사겸사 MVMM에 대해 먼저 알아보기로 하였다. MVVM은 MVC 의 C에 해당하는 Controller를 빼고 대신 ViewModel을 추가한 패턴이다. ViewModel 또한 Controller처럼 View와 Model사이의 중간역할을 한다. 하나씩 설명해보자면 Model MVC에서의 그것과 마찬가지로 실제적 데이터에 해..
3진법 뒤집기 문제 설명 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 입출력 예시) 입력 리턴 기대값 45 7 125 229 입출력 예 #1 답을 도출하는 과정은 다음과 같습니다. n (10진법) n (3진법) 앞뒤 반전 (3진법) 10진법으로 표현 45 1200 0021 7 따라서 7을 return 해야 합니다. import Foundation func solution(_ n:Int) -> Int { var num = n var result:[Int] = [] var resultNum:Int = 0 var count = 1 while num > 0 { result.append(nu..
체육복 문제 설명 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번호의 학생이나 바로 뒷번호의 학생에게만 체육복을 빌려줄 수 있습니다. 예를 들어, 4번 학생은 3번 학생이나 5번 학생에게만 체육복을 빌려줄 수 있습니다. 체육복이 없으면 수업을 들을 수 없기 때문에 체육복을 적절히 빌려 최대한 많은 학생이 체육수업을 들어야 합니다. 전체 학생의 수 n, 체육복을 도난당한 학생들의 번호가 담긴 배열 lost, 여벌의 체육복을 가져온 학생들의 번호가 담긴 배열 reserve가 매개변수로 주어질 때, 체육수업을 들을 수 있는 학생의 최댓값을 return 하도록 solution..
프로토콜 - (1) 이번에는 프로토콜에 대해서 정리해보려 한다. 아직 이해가 부족해 틀린부분이 있을수도 있으므로 틀린부분이 있다면 지적 부탁드립니다.. 먼저 프로토콜이란, "특정 역할을 수행하기 위한 메소드, 프로퍼티, 기타 요구사항 등의 청사진", "약속, 규약" 구조체, 클래스, 열거형들에서 프로토콜을 "채택"하여 특정 기능을 실행하기 위한 프로토콜의 요구사항을 실제로 구현할 수 있다. +구현해야 할 요구사항을 지정하는 것 이외에도, 프로토콜을 확장(extension)하여 이러한 요구사항 중 일부를 구현하거나, conforming타입에서 활용할 수 있는 추가 기능을 구현할 수도 있다. 중요한점은 프로토콜은 기능을 정의하고 제시할 뿐 스스로 기능을 구현하지는 않는다는 것. 기본형태 protocol My..

MVC 여태 공부를 하며 MVC에 대한 개념도 많이 들었고, 실제로 (강의를따라서) 여러번 구현해 보았지만, 여전히 개념이 모호하고, 감이 안잡히는 부분이 많아 한번 기초부터 정리해보겠다. 먼저 MVC는 ios개발에 사용되는 아키텍처중의 하나인데 여기서 Architectures란 프로그램의 구조? 라고 보면 될 것 같다. 아키텍처를 사용하는 이유는 여러가지가 있지만 그중 균형잡인 분배에 최적화된 패턴 중 하나가 MVC 패턴이다. 사실 아키텍처와 디자인 패턴의 관계에 대해 의구심이 들지만, 조만간 알아보기로 했다. 아무튼 MVC는 Model, View, Controller를 줄인 말인데, 하나하나 정의를 보자면 다음과 같다. Model - 앱에서 '무엇' 에 해당하는 UI, 독립적인 개체들 즉 앱이 가지는..
components가 궁금해 구글링해보았는데, split이라는 친구와 쌍으로 문자열을 다룰 때 자주 쓰는 메소드라고 한다 먼저 split메소드의 예시부터 보겠다. var s = "I am swift developer" let sSplit = s.split(separator: " ") print(sSplit) // ["I", "am", "swift", "developer"] split메소드의 separator 매개변수로 값을 받고, 받은 값을 기준으로 문자열을 나눠 [Substring] 형태로 반환해준다. 여기서 중요한점은, 기준으로 하는 문자는 기준으로만 사용하고 제외한 채 반환한다는 점이다. split메소드의 parameter는 separator뿐만 아니라 나눠주는 최대 횟수를 지정해주는 maxSpli..