단순한 이분탐색 문제다. 1.문제된 부분 문제가 된 부분은 값을 찾은 후에도 조건문이 한번 더 도는 경우 정답에서 1~2정도 차이나는 것이었다. 조건식도 계속 바꿔보고 했는데, 절대 모든 반례를 만족하지는 못했다. 한시간정도 고민하다가 결국 다른 사람들이 푼 코드를 봤는데 1.조건문 안에 정답 값을 미리 저장하거나 2.max를 출력하면 되더라. mid에 꽂혀서 mid값이 정답으로 나오게 하려고 난리쳤는데 그냥 max를 출력해주면 됐던 것이다.... 답을 알고나면 너무도 간단한 문제였는데, 계속 mid값에 집착해서 까막눈으로 풀었던 문제 2.코드 import Foundation let N = Int(readLine()!) let budgets = readLine()!.split(separator: " ")..

widget을 만들면 기본으로 만들어지는 코드들을 보면 TimelineProvider, TimelineEntry 가 만들어지고, Configuration생성자에서 provider 라는 파라미터에서 Provider()를 받는 것을 확인할 수 있습니다. Timeline이 들어간 것들은 다 widget을 언제 업데이트 할지에 관여한다고 보면 될 듯 합니다. 이해하고 써먹는데 애좀 먹은 부분이 timeline 관련한 부분이었습니다. 지금 정리안하면 분명 나중가서 까먹고 다시 공부할게 뻔하기에, 정리하려고 합니다. 1.TimelineProvider 공식문서를 보면 TimelineProvider는 widget이 언제 업데이트 될지 알려주는 프로토콜임을 알 수 있습니다 TimelineProvider를 이해하려면 ti..

1.Widget 이란? 공식문서를 보면 WidgetKiet은 앱과 관련있는 콘텐츠를 한눈에 보여준다고 합니다. 또한 앱에 빠르게 접근할 수 있도록 하며 3개의 다른사이즈(small, medium, large)를 제공합니다. 유저가 위젯을 스택으로 쌓았을 때는 적절한 시간에 관련있는 정보가 가장 위에 오도록 rotate 시키기도 합니다 위젯을 실행시키기 위해서는 widget extension을 추가해야 합니다. timeline provider로 위젯내용이 언제 업데이트 될지 설정할 수 있으며, swiftUI를 이용해 위젯에 표시될 콘텐츠를 보여줍니다. 2.Widget 만들기 1. File > New > Target 2. Widget Extension 3. extension 이름 입력 4. Click Fin..

1.클로저란? 공식 문서를 보면 -클로저란 코드 안에서 전달되고 사용가능한 함수 블록이다. ( {}를 이용해 클로저 구문을 작성한다) -람다함수와 비슷하다. -자신이 정의된 문맥으로부터 모든 상수와 변수의 값을 캡처하거나 저장할 수 있다.(아직 뭔소린지 모르겠음) +) 일회용 함수를 작성할 수 있는 구문 익명함수(일반 func함수는 이름이 있는 클로저이다.) 2.클로저 표현 closure는 함수이긴 하지만 func를 사용하지 않는다. 1.매개변수와 반환타입이 없는 클로저 +)클로저는 변수 또는 상수에 할당이 가능하다. 2.반환 값이 없는 클로저 +)클로저를 할당없이 직접 호출해야 하는 경우 ()로 감싸준다.(거의 쓰이지 않음) 3.클로저 축약 배열을 내림차순으로 정렬하는 sort함수를 예시로 들었다. 1..

swift는 변수 선언과 동시에 초기화해주면 자동으로 타입추론을 해주기 때문에 따로 자료형을 선언해주지 않아도 된다. 하지만 항상 선언과 동시에 초기화하지 않으며, 초기화를 한다고 하더라도 추론된 타입이 원하는 타입이 아닐 수도 있다. 그래서 나온 개념이 어노테이션. 즉, 어노테이션은 상수나 변수를 선언할 때 타입을 명시적으로 선언해 주는 문법이다. 어노테이션을 사용해야하는 경우는 다음과 같다. 1.선언과 초기화를 동시에 하지 않을 때 우선 초기화를 해주지 않으면 상수나 변수에 어떤 값이 들어갈 지 모르기 때문에 타입을 지정해주지 않으면 다음과 같은 에러를 보게된다. 바로 사용할 게 아니라면 반드시 타입을 지정해줘야한다. 2.추론된 타입이 원하는 타입이 아닐 때 위 코드처럼 선언을 하면, Characte..
갑자기 playground 실행 안될 때 1.[file]-[close {file name}] 2.[file]-[Close Playground] 3.Xcode 종료(cmd + q) 4.다시 실행 왜 갑자기 실행이 안됐던건지는 모르겠다. playground를 새로 생성해도 안되고, 완전히 xcode를 다시 종료했다가 켜니까 되네... *참고 https://stackoverflow.com/questions/53608795/xcode-playground-execution-failed
- Total
- Today
- Yesterday
- provisioning key
- 파이썬
- 백준
- 애플 인증
- main branch
- xcuserdata
- 애플 인증서
- property wrapper
- 프로퍼티 래퍼
- readme ignore파일 포함한 repository
- 장고
- palera1n
- SWiFT
- mvvm in swiftui
- Xcode
- xcsharedata
- Widget
- 클로저
- 백준 1065번 swift
- ios mvvm
- 이분탐색
- New Group
- 백준 4673 swift
- closure
- django
- 백준알고리즘
- New Group Without Folder
- 알고리즘
- ios
- sileo
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |