일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 이벤트캡처링
- 연결리스트삽입
- eventbubbling
- 패스트캠퍼스
- 자료구조
- eventcapturing
- 이벤트버블링
- 패스트캠퍼스후기
- hig
- stopPropagation
- 패캠챌린지
- ios
- 수강료0원챌린지
- swift
- MVMM
- 패캠인강후기
- JavaScript
- 직장인인강
- 연결리스트생성
- 실패율
- 사이드프로젝트10개기술스택으로구현하는풀스택서버리스프로젝트withReact
- Components
- 프로그래머스
- 환급챌린지
- HTML
- 오공완
- 연결리스트삭제
- 직장인자기계발
- 코딩테스트
- 스위프트
- Today
- Total
목록스위프트 (19)
날쌘 개발자

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..
가운데 글자 가져오기 문제 설명 단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. func solution(_ s:String) -> String { if s.count % 2 == 0 { // 짝수 let leng:Int = s.count / 2 - 1 return String(s[s.index(s.startIndex, offsetBy: leng)]) + String(s[s.index(s.startIndex, offsetBy: leng+1)]) } else { // 홀수 let leng:Int = s.count / 2 return String(s[s.index(s.startIndex, offsetBy: leng)]) } ..
두 개 뽑아서 더하기 문제 설명 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. import Foundation func solution(_ numbers:[Int]) -> [Int] { var result = [Int]() func removeRedupl(numbers:[Int]) -> [Int] { var result = [Int]() for i in 0...numbers.count - 1 { if result.contains(numbers[i]) == false { result.append(numbers[i]) } } return r..
문제 설명 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 소수가 되는 경우의 개수를 return 하도록 solution 함수를 완성해주세요. import Foundation func prime(_ num:Int) -> Bool{ if (num == 2) {return true} for i in 2...Int(num / 2){ if (num % i == 0) {return false} } return true } func solution(_ nums:[Int]) -> Int { var sum:Int = 0 var result:Int = 0 for i i..
고차함수 고차함수(Higher-order function)란, 다른 함수를 전달인자로 받거나 함수실행의 결과를 함수로 반환하는 함수 라고 한다. 스위프트에서 제공하는 고차함수에는 Map, Filter, Reduce가 있는데, 코딩테스트 문제를 풀때 다른 사람들이 푼 방법중 간결한 코드에는 항상 포함되어있었던것이 기억에 남는다. 이놈들은 스위프트 표준 라이브러리의 컨테이너 타입인 Array, Set, Dictionary 등에 구현되어 있다. Map map(변형)함수는 컨테이너 내부의 기존 데이터를 변형하여 새로운 컨테이너를 만든다. 이때 기존의 컨테이너는 변경되지 않는다! 기존의 for - in 구문과 유사하지만, 보다 코드가 간결해지고, 재사용이 용이해지며, 컴파일러 최적화 시 성능이 좋아진다는 장점이 ..

스마트폰 전화 키패드의 각 칸에 다음과 같이 숫자들이 적혀 있습니다. 이 전화 키패드에서 왼손과 오른손의 엄지손가락만을 이용해서 숫자만을 입력하려고 합니다. 맨 처음 왼손 엄지손가락은 * 키패드에 오른손 엄지손가락은 # 키패드 위치에서 시작하며, 엄지손가락을 사용하는 규칙은 다음과 같습니다. 엄지손가락은 상하좌우 4가지 방향으로만 이동할 수 있으며 키패드 이동 한 칸은 거리로 1에 해당합니다. 왼쪽 열의 3개의 숫자 1, 4, 7을 입력할 때는 왼손 엄지손가락을 사용합니다. 오른쪽 열의 3개의 숫자 3, 6, 9를 입력할 때는 오른손 엄지손가락을 사용합니다. 가운데 열의 4개의 숫자 2, 5, 8, 0을 입력할 때는 두 엄지손가락의 현재 키패드의 위치에서 더 가까운 엄지손가락을 사용합니다. 4-1. 만약..

로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1등 - 6개 번호가 모두 일치 2등 - 5개 번호가 일치 3등 - 4개 번호가 일치 4등 - 3개 번호가 일치 5등 - 2개 번호가 일치 6등(낙첨) - 그외 로또를 구매한 민우는 당첨 번호 발표일을 학수고대하고 있었습니다. 하지만, 민우의 동생이 로또에 낙서를 하여, 일부 번호를 알아볼 수 없게 되었습니다. 당첨 번호 발표 후, 민우는 자신이 구매했던 로또로 당첨이 가능했던 최고 순위와 최저 순위를 알아보고 싶어 졌습니다. 알아볼 수 없는 번호를 0으로 표기하기로 하고, 민우가 구매한 로또 번호 6개가 44, 1, 0, 0, 31 2..
신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 가입하는 유저들이 카카오 아이디 규칙에 맞지 않는 아이디를 입력했을 때, 입력된 아이디와 유사하면서 규칙에 맞는 아이디를 추천해주는 프로그램을 개발하는 것입니다. 다음은 카카오 아이디의 규칙입니다. 아이디의 길이는 3자 이상 15자 이하여야 합니다. 아이디는 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.) 문자만 사용할 수 있습니다. 단, 마침표(.)는 처음과 끝에 사용할 수 없으며 또한 연속으로 사용할 수 없습니다. "네오"는 다음과 같이 7단계의 순차적인 처리 과정을 통해 신규 유저가 입력..
K번째수 배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다. 예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3이라면 array의 2번째부터 5번째까지 자르면 [5, 2, 6, 3]입니다. 1에서 나온 배열을 정렬하면 [2, 3, 5, 6]입니다. 2에서 나온 배열의 3번째 숫자는 5입니다. 배열 array, [i, j, k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어질 때, commands의 모든 원소에 대해 앞서 설명한 연산을 적용했을 때 나온 결과를 배열에 담아 return 하도록 solution 함수를 작성해주세요. import Foundation func solution(_ ..