일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Java
- PHP
- c언어
- 스택
- C
- System
- 미로 탐색 알고리즘
- 파이썬
- 파일 시스템
- web
- ftz
- 자료구조
- OSI
- 큐
- HTML
- 정렬 알고리즘
- War Game
- ftz level13
- LoB
- 시간복잡도
- 두근두근 자료구조
- level13
- windosws wbcs
- 백준
- pwnable.kr
- 암호수학
- SWiFT
- Stack
- 재귀
- windosw 문자열
- Today
- Total
목록Programming (117)
나의 기록, 현진록
스위프트 프로그래밍 3판 - 야곰 지음 14.1 옵셔널 체이닝 옵셔널 체이닝은 옵셔널에 속해 있는 nil일지도 모르는 프로퍼티, 메서드, 서브스크립션 등을 가져오거나 호출할 때 사용할 수 있는 일련의 과정입니다. 옵셔널에 값이 있다면 프로퍼티, 메서드, 서브스크립트 등을 호출할 수 있고, 옵셔널이 nil이라면 프로퍼티, 메서드, 서브스크립트 등은 nil을 반환합니다. 즉, 옵셔널을 반복 사용하여 옵셔널이 자전거 체인처럼 서로 꼬리를 물고 있는 모양이기 때문에 옵셔널 체이닝이라고 부릅니다. 자전거 체인에서 한 칸이라도 없거나 고장 나면 체인 전체가 동작하지 않듯이 중첩된 옵셔널 중 하나라도 값이 존재하지 않는다면 결과적으로 nil을 반환합니다. 옵셔널 체이닝은 프로퍼티나 메서드 또는 서브스크립트를 호출하고..
GitHub - dbguswls030/Argorithm Contribute to dbguswls030/Argorithm development by creating an account on GitHub. github.com 20300번 - 서강근육맨 성공출처 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 1 초 (추가 시간 없음) 1024 MB 913 341 293 36.809% 문제 로니 콜먼 동영상을 보고 보디빌더가 되기로 결심한 향빈이는 PT 상담을 받으러 서강헬스클럽에 갔다. 향빈이가 서강헬스클럽을 선택한 이유는 PT를 받을 때 사용하는 운동기구를 회원이 선택할 수 있다는 점 때문이다. 하지만, 서강헬스클럽은 항상 사람이 많아서 PT를 한 번 받을 때 운동기구를 최대 두 개까지만 선택할 수..
스위프트 프로그래밍 3판 - 야곰 지음 13.4 값 획득 클로저는 자신이 정의된 위치의 주변 문맥을 통해 상수나 변수를 획득할 수 있습니다. 주변에 정의한 상수나 변수가 더 이상 존재하지 않더라도 값 획득을 통해 해당 상수나 변수의 값을 자신 내부에서 참조하거나 수정할 수 있습니다. 이 이야기를 하는 이유는 클로저가 비동기 작업에 많이 사용되기 때문입니다. 클로저를 통해 비동기 콜백을 작성하는 경우, 현재 상태를 미리 획득해두지 않으면, 실제로 클로저의 기능을 실행하는 순간에는 주변의 상수나 변수가 메모리에 미리 존재하지 않는 경우가 발생합니다. 중첩 함수도 하나의 클로저 형태라고 앞에서 설명했는데, 이 중첩 함수 주변의 변수나 상수를 획득해 놓을 수도 있습니다. 즉, 자신을 포함하는 지역변수나 지역상수..
스위프트 프로그래밍 3판 - 야곰 지음 13.3.1 문맥을 이용한 타입 유추 메서드의 전달인자로 전달하는 클로저는 메서드에서 요구하는 형태로 전달해야 합니다. 즉, 매개변수의 타입이나 개수, 반환 타입 등이 같아야 전달인자로서 전달할 수 있습니다. 이를 다르게 말하면, 전달인자로 전달할 클로즈는 이미 적합한 타입을 준수하고 있다고 유추할 수 있습니다. 문맥에 따라 적절히 타입을 유추하는 것입니다. 그래서 전달인자로 전달하는 클로저를 구현할 때는 매개변수의 타입이나 반환 값의 타입을 굳이 표현해주지 않고 생략하더라도 문제가 없습니다. let names: [String] = ["wizplan", "eric", "hyunjin", "jenny"] //클로저의 매개변수 타입과 반환 타입을 생략하여 표현할 수 있..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/dXxGYg/btraCSLGdr8/N1ZLqvtpiZHWHnbG1kBQ2K/img.png)
스위프트 프로그래밍 3판 - 야곰 지음 스위프트에서 함수형 프로그래밍 패러다임을 접할 때 첫걸음으로 꼭 알아야 할 녀석이다. 클로저를 이해해야 스위프트 함수형 프로그래밍 패러다임 스타일을 좀 더 명확하게 이해할 수 있습니다. 클로저는 일정 기능을 하는 코드를 하나의 블록으로 모아놓은 것을 말합니다. 뭔가 함수랑 비슷하다고 느껴지면 맞다. 사실 함수는 클로저의 한 형태입니다. 클로저는 변수나 상수가 선언된 위치에서 참조를 획득하고 저장할 수 있습니다. 이를 변수나 상수의 클로징이라고 하며 클로저는 여기서 착안된 이름입니다. 클로저의 세 가지 형태가 있습니다. 이름이 있으면서 어떤 값도 획득하지 않는 전역함수의 형태 이름이 있으면서 다른 함수 내부의 값을 획득할 수 있는 중첩된 함수의 형태 이름이 없고 주변..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/ensp7v/btrasuY4NJc/XYSdtKLdmFLx8kNYuLeKR1/img.png)
스위프트 프로그래밍 3판 - 야곰 지음 11.2 인스턴스 소멸 클래스의 인스턴스는 디이니셜라이저를 구현할 수 있습니다. 디이니셜라이저는 이니셜라이저와 반대 역할을 합니다. 즉, 메모리에서 해제되기 직전 클래스 인스턴스와 관련하여 원하는 정리 작업을 구현할 수 있습니다. 디이니셜라이저는 클래스의 인스턴스가 메모리에서 소멸되기 바로 직전에 호출됩니다. deinit 키워드를 사용하여 디이니셜라이저를 구현하면 자동으로 호출됩니다. 디이니셜라이저는 클래스의 인스턴스에만 구현할 수 있습니다. 스위프트는 인스턴스가 더 이상 필요하지 않으면 자동으로 메모리에서 소멸시킵니다. 만약 인스턴스 내부에서 파일을 불러와 열어보는 등의 외부 자원을 사용했다면 인스턴스를 소멸하기 직전에 파일을 다시 저장하고 닫아주는 등의 부가 작..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/sEsZe/btrat1IPn9Z/R8n6lRHJ0ezQG3cTkODbNk/img.png)
스위프트 프로그래밍 3판 - 야곰 지음 11.1.5 기본 이니셜라이저와 멤버와이즈 이니셜라이저 사용자 정의 이니셜라이저를 정의해주지 않으면 클래스나 구조체는 모든 프로퍼티에 기본값이 지정되어 있다는 전제하에 기본 이니셜라이저를 사용합니다. 기본 이니셜라이저는 프로퍼티 기본값으로 프로퍼티를 초기화해서 인스턴스를 생성합니다. 즉, 기본 이니셜라이저는 저장 프로퍼티의 기본값이 모두 지정되어 있고, 동시에 사용자 정의 이니셜라이져가 정의되어 있지 않은 상태에서 제공됩니다. 저장 프로퍼티를 선언할 때 기본값을 지정해주지 않으면 이니셜라이저에서 초깃값을 설정해야 합니다. 그러나, 프로퍼티 하나 때문에 매번 이니셜라이저를 추가하거나 변경하는 일은 여간 귀찮은 일이 아닙니다. 때문에 구조체는 사용자 정의 이니셜라이저를..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/teKwl/btrajPazE8x/YLQKclrqNrC2C2NGm80FAK/img.png)
구조체와 클래스를 생성할 때는 지금까지 기본 이니셜라이저를 사용해 인스턴스를 생성했다면. 초기화는 클래스나 구조체 또는 열거형의 인스턴스를 사용하기 위한 준비 과정입니다. 초기화가 완료된 인스턴스는 사용 후 소멸 시점이 오면 소멸합니다. 11.1 인스턴스 생성 초기화 과정은 새로운 인스턴스를 사용할 준비를 하기 위하여 저장 프로퍼티의 초깃값을 설정하는 등의 일을 합니다. ㅇ]이니셜 라이저를 정의하면 초기화 과정을 직접 구현할 수 있습니다. 그렇게 구현된 이니셜라이저는 새로운 인스턴스를 생성할 수 있는 특별한 메서드가 됩니다. 스위프트의 이니셜라이저는 반환 값이 없습니다. 이니셜라이저의 역할은 그저 인스턴스의 첫 사용을 위해 초기화하는 것뿐입니다. 이니셜라이저는 해당 타입의 새로운 인스턴스를 생성하기 위해..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/J4oHP/btraicXataV/OSMDT1wE9gNvAu8ZSfcxCK/img.png)
10829번: 이진수 변환 첫째 줄에 자연수 N이 주어진다. (1 ≤ N ≤ 100,000,000,000,000) www.acmicpc.net GitHub - dbguswls030/Argorithm Contribute to dbguswls030/Argorithm development by creating an account on GitHub. github.com GitHub - dbguswls030/Argorithm Contribute to dbguswls030/Argorithm development by creating an account on GitHub. github.com 10829번 - 이진수 변환 성공 시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율 1 초 256 MB 3636 1899..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/57lnA/btq91NEIYj2/TgMRkMD7WquBYIJ55YPRl1/img.png)
스위프트 프로그래밍 3판 - 야곰 지음 10.2 메서드 메소드는 특정 타입에 관련된 함수를 뜻합니다. 클래스, 구조체, 열거형 등은 실행하는 기능을 캡슐화한 인스턴스 메서드를 정의할 수 있습니다. 또한, 타입 자체와 관련된 기능을 실행하는 타입 메서드를 정의할 수도 있습니다. 타입 메서드는 기존의 프로그래밍 언어에서의 클래스 메서드와 유사한 개념입니다. 구조체와 열거형이 메서드를 가질 수 있다는 것은 기존 프로그래밍 언어와 스위프트 간의 큰 차이점입니다. 스위프트에서는 프로그래머가 정의하는 타입(클래스, 구조체, 열거형 등)에 자유롭게 메서드를 정의할 수 있습니다. 10.2.1 인스턴스 메서드 인스턴스 메서드는 특정 타입의 인스턴스에 속한 함수를 뜻합니다. 인스턴스 내부의 프로퍼티 값을 변경하거나 특정 ..