문제 링크 문제 아래 과 같이 여러개의 정사각형칸들로 이루어진 정사각형 모양의 종이가 주어져 있고, 각 정사각형들은 하얀색으로 칠해져 있거나 파란색으로 칠해져 있다. 주어진 종이를 일정한 규칙에 따라 잘라서 다양한 크기를 가진 정사각형 모양의 하얀색 또는 파란색 색종이를 만들려고 한다. 전체 종이의 크기가 N×N(N=2k, k는 1 이상 7 이하의 자연수) 이라면 종이를 자르는 규칙은 다음과 같다. 전체 종이가 모두 같은 색으로 칠해져 있지 않으면 가로와 세로로 중간 부분을 잘라서 의 I, II, III, IV와 같이 똑같은 크기의 네 개의 N/2 × N/2색종이로 나눈다. 나누어진 종이 I, II, III, IV 각각에 대해서도 앞에서와 마찬가지로 모두 같은 색으로 칠해져 있지 않으면 같은 방법으로 똑..
이번 글에서는 동시성 프로그래밍에서 스레드를 어떻게 쉽게 사용할지에 대해 알아보자 Apple Developer Documents - Migrating Away from Threads Migrating Away from Threads Grand Central Dispatch와 작업 객체를 사용에 효율적이게 기존의 스레드 코드를 수정하는 방법에는 여러 가지가 있다. 대부분의 경우 스레드를 사용하지 않는 것은 불가능하지만 스레드를 대체하도록 구현한다면 성능이 많이 향상될 수 있다. 특히 스레드 대신 dispatch queue, operation queue를 사용하면 몇 가지 장점이 있다. 프로그램의 메모리 공간에 스레드 스택을 저장하기 위해 필요한 메모리를 줄인다. 스레드를 작성하고 구성하는 데 필요한 코드를..
이번 글은 Apple에서 과거에 올린 글이기 때문에 Objective-C로 코드가 구성되어있는데 Swift로 구현하는 방법은 여기를 참고해주세요!. Apple Developer Document - Operation Queues Operation Queues Cocoa Operation은 비동기적으로 실행하려는 작업을 객체 지향 방식으로 캡슐화한다. 작업들은 operation queue와 함께 실행되거나 자체적으로 실행되도록 설계된다. OS X, iOS의 Cocoa 기반 프로그램들에서 일반적으로 사용되는 작업들은 Objective-C 기반이다. 이번 글에서는 Operation을 정의하고 사용하는 방법에 대해 알아보자 About Operation Object 작업 객체는 NSOperation 클래스의 인스턴..
Apple Developer Document - Concurrency and ApplicationDesign Concurrency and Application Design 컴퓨터가 처음 생겼을 때는 수행할 수 있는 단위 시간당 최대 작업량이 CPU의 클럭 속도에 의해 결정되었다. 이젠 기술이 발전하여 열과 기타 물리적 제약에 의해 프로세서의 최대 클럭 속도가 제한되기 시작했다. 칩 제조회사는 칩의 성능을 향상할 수 있는 다른 방법을 모색했고 각 칩의 프로세서 코어 수를 늘리는 게 그 해결책이었다. 코어 수를 늘리면 단일 칩이 CPU 속도를 높이거나 칩 크기, 열 특성을 변경하지 않아도 초당 더 많은 명령을 실행할 수 있었다. 이렇게 변한 칩들의 늘어난 코어를 어떻게 활용할 수 있을까? 여러 코어를 활용하..
iOS 앱 개발을 할 때 OperationQueue를 사용하여 동시성 프로그래밍을 하기 위해서 필요한 내용을 공부할 수 있는 문서이다. Apple Developer Document - Concurrency Programming Guide Introduction Concurrency(동시성)이란 여러 가지 일이 동시에 발생한다는 개념이다. 멀티 코어 CPU의 확산과 각 프로세서의 코어 수가 많이 증가한 현재 개발자는 이를 활용할 수 있는 새로운 방법이 필요하다. iOS와 같은 운영 체제는 여러 프로그램을 병렬로 실행할 수 있지만 대부분의 프로그램은 백그라운드에서 실행되며 프로세서 시간이 거의 필요 없는 작업을 수행한다. 사용자의 관심을 끌고 컴퓨터를 바쁘게 하는 것은 foreground라는 녀석들이다. 프..
문제 링크 1931번: 회의실배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 문제 한 개의 회의실이 있는데 이를 사용하고자 하는 N개의 회의에 대하여 회의실 사용표를 만들려고 한다. 각 회의 I에 대해 시작시간과 끝나는 시간이 주어져 있고, 각 회의가 겹치지 않게 하면서 회의실을 사용할 수 있는 회의의 최대 개수를 찾아보자. 단, 회의는 한번 시작하면 중간에 중단될 수 없으며 한 회의가 끝나는 것과 동시에 다음 회의가 시작될 수 있다. 회의의 시작시간과 끝나는 시간이 같을 수도 있다. 이 경우에는 시작하자마자 끝나는 것으로 생각하면 된다. 입력 첫째 줄에 회의의 수 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N+1 줄까지 각 회..
저번 글에 이어 이번 글에서는 스토리보드 없이 만들어진 화면에 버튼과 레이블, 이미지 뷰를 추가해보려고 합니다! 우선 완성된 화면을 먼저 보여드리고 진행하도록 하겠습니다. 아주 간단하게 만든 앱으로 스토리보드 없이 오토 레이아웃 적용하기, 버튼 눌렀을 때 이벤트 생성하기 정도의 글입니다. 물론 스토리보드를 이용하면 아주 간단하게 만들 수 있지만 스토리보드가 없는 상황에선 은근히 많은 코드가 필요합니다. 저번에 만들어 둔 MyViewController.swift 파일에 코드를 작성하면 위와 같은 결과를 얻어낼 수 있습니다. 먼저 버튼을 추가해보겠습니다. 위의 코드와 같이 작성하면 오른쪽 사진과 같이 버튼하나가 추가됩니다. 오토 레이아웃을 설정하는 부분이 어려웠는데 self.view의 경우에는 전체 화면이라..
이번 글에서는 Swift 공식 문서의 12번째 단원인 Subscripts를 읽고 정리한 글을 쓰려고 한다. Apple Swift 공식 문서 12단원 - Subscripts Subscripts 클래스, 구조체, 열거형에서 subscript를 정의할 수 있다. 이러한 서브 스크립트는 해당 타입의 요소에 접근하기 위해 사용된다. 수정과 검색을 위한 별도의 메서드 없이 index로 값으로 수정과 검색을 할 수 있다. 예를 들어 Array는 someArray [index]로 Dictionary는 someDictionary[key]로 접근할 수 있다. 하나의 타입에 여러 개의 서브 스크립트를 정의할 수 있고 index의 유형에 따라 적절하게 서브 스크립트를 선택하게 된다. Subscript Syntax 서브 스크립..
- Total
- Today
- Yesterday
- 프로그래밍
- System
- pattern
- 백준
- Publisher
- document
- Apple
- design
- mac
- 알고리즘
- operating
- 스위프트
- 아이폰
- 동시성
- BFS
- operator
- IOS
- Combine
- Swift
- 코딩테스트
- 코테
- 테이블뷰
- DP
- OSTEP
- 문법
- dfs
- 자료구조
- 앱개발
- Xcode
- OS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |