일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- swift 시작
- 카카오
- Siwft
- 카카오 2018
- SwiftUI
- roboflow
- kakao 2018
- 스위프트
- 날씨 앱
- supervisely
- 카카오 2021
- 최솟값 만들기
- Python
- 머신러닝
- ios 개발 시작
- 이미지학습
- 데이터셋 만들기
- 카카오 2020
- coco 데이터셋
- swift 배열
- c언어
- Kakao
- fast.ai
- 카카오 2019
- 소수
- 파이썬
- 프로그래머스 답
- swift
- 문제
- 프로그래머스
- Today
- Total
목록스위프트 (30)
잡초의 일지
개요 온전한 내 힘으로 MVVM 패턴을 적용한 무언가를 만들고 싶다는 생각이 들었다. 가장 쉬운 todolist를 만들어보기로 했다. 완성본 https://youtu.be/0zDHYsUIRpg 이 영상을 올리려고 처음으로 유튜브에 동영상을 올려봤다..ㅎㅎ 디자인 & 기능 아이디어의 러프 스케치는 아래와 같다. 알람이나 날짜 기록 등의 기능은 제외하고, 주요 기능만 추려 단순하게 만들었다. 코드 내용 MVVM 패턴으로 구현하려고 노력하였다. 완료한 일을 체크하는 코드를 짤 때, 이미 Todo객체로 만들어진 것을 어떻게 수정해야 할 지 고민이었다. 각 todo를 하나의 view로 표현하여 여러 셀들로 표현해야 하나 생각했다. 하지만, 이것은 기존의 코드를 많이 수정해야 했다. 따라서, modifyTodoDo..
처음에는 지금껏 풀어왔던 것과 같이, for문을 반복하며 0으로 나누어 떨어지면 소수로 판별하는 방식으로 풀었다. 더보기 func solution(_ n:Int) -> Int { var count = 1 if n >= 3{ for i in 3...n{ // i가 소수인가 판별 후 count ++ var isPrime = true for j in 2...i-1{ if (i%j == 0){ isPrime = false break } } if (isPrime){ count += 1 } } } return count } 하지만, 아무리 코드를 줄여봐도 시간초과가 났고, 접근방식이 잘못되었다고 생각해 찾아보았다. 소수를 구할 때에 가장 콤펙트한 방법은 에라토스테네스의 채를 활용하는것이라고 한다. (아래의 링크에 ..
Level1 문제는 대부분 쉽게 풀 수 있어 포스팅을 잘 하지 않는데, 이것을 포스팅 하는 이유는 아래와 같다. 나는 처음에 이 문제에 대한 답으로 func solution(_ x:Int, _ n:Int) -> [Int64] { var res:[Int64] = [] var value = x for _ in 0.. [Int64] { var res:[Int64] = [] for i in 1...n{ res.append(Int64(i*x)) } return res } 이렇게 바꾸었다. 사소한 변수선언이었고, 그로인한 복잡하지 않은 연산이 있었지만, 이 작은것 하나도 신경써야 한다는 생각이 들게 했다.
minsone.github.io/mac/ios/swift-advanced-operators-summary [Swift]Advanced Operators 정리 고급 연산자(Advanced Operators) Swift는 더 복잡한 값 조작을 동작하는 몇가지 고급 연산자를 제공한다. 비트 관련 연산자는 C와 Objective-C와 유사하다. Swift에 산술 연산자는 기본적으로 오버플로우를 minsone.github.io 여기 있는것처럼 이진수 연산을 해서 or연산자로 풀려고 했는데, Int를 Int8로 ..(혹은 다른것으로도) 바꾸는 방법을 찾지 못했다.. 십진수를 이진수로 바꾸는 방법들은 모두 문자열을 반환했다. 따라서 마땅한 방법을 찾지 못해, 십진수를 이진수 문자열로 바꾸고, 문자열끼리 비교하기로 하..
func solution(_ N:Int, _ stages:[Int]) -> [Int] { var fail = [[Double]]() var last = 0 var numerator:Double // 분자 var denominator:Double // 분모 var current = stages.count var i = 0 for _ in 1...N { var count = 0 for stage in stages { if (i+1 == stage){ count += 1 } } numerator = Double(count) denominator = Double(current - last) fail.append([Double(numerator/denominator), Double(i+1)]) last = Int..
func solution(_ new_id:String) -> String { func stage1(_ str: String) -> String { // 1단계 new_id의 모든 대문자를 대응되는 소문자로 치환합니다. return str.lowercased() } func stage2(_ str: String) -> String { // 2단계 new_id에서 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.)를 제외한 모든 문자를 제거합니다. var res = str for character in res { switch character { case "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "..
func solution(_ numbers:[Int], _ hand:String) -> String { var result = "" var left_x = 3 var left_y = 0 var right_x = 3 var right_y = 2 func find2darrIndex(_ number: Int) -> (Int, Int) { let keypad = [["1", "2", "3"], ["4", "5", "6"], ["7", "8", "9"], ["*", "0", "#"]] for j in 0..
func solution(_ board:[[Int]], _ moves:[Int]) -> Int { var stack: Array = [] var newBoard = board var count = 0 var j = 0 for _ in moves {// 입력된 moves 만큼 반복해서 해야 함. for i in 0.. 1) {// 전에 들어간 인형과 지금 들어간 인형이 같은지 판별하고 같으면 없앤다. var last = stack[stack.count - 1] var first = stack[stack.count - 2] if (first == last) { stack.popLast() stack.popLast() count += 2 } } break; } } j += 1 } return count } 문..