https://school.programmers.co.kr/learn/courses/30/lessons/12952 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 조건 가로, 세로 길이가 n인 정사각형으로된 체스판 체스판 위의 n개의 퀸(Queen)이 서로를 공격할 수 없도록 배치 퀸(Queen)은 가로, 세로, 대각선으로 이동 풀이 import Foundation func solution(_ n:Int) -> Int { var ret = 0 // maps를 통해 갈 수 있는 곳을 확인 var maps = Array(repeating: Array(repea..
https://www.acmicpc.net/problem/16173 16173번: 점프왕 쩰리 (Small) 쩰리는 맨 왼쪽 위의 칸에서 출발해 (행, 열)로 나타낸 좌표계로, (1, 1) -> (2, 1) -> (3, 1) -> (3, 3)으로 이동해 게임에서 승리할 수 있다. www.acmicpc.net 조건 ‘쩰리’는 가로와 세로의 칸 수가 같은 정사각형의 구역 내부에서만 움직일 수 있다. ‘쩰리’가 정사각형 구역의 외부로 나가는 경우엔 바닥으로 떨어져 즉시 게임에서 패배하게 된다. ‘쩰리’의 출발점은 항상 정사각형의 가장 왼쪽, 가장 위의 칸이다. 다른 출발점에서는 출발하지 않는다. ‘쩰리’가 이동 가능한 방향은 오른쪽과 아래 뿐이다. 위쪽과 왼쪽으로는 이동할 수 없다. ‘쩰리’가 가장 오른쪽, ..
아이폰 기본 앱에 있는 공유 버튼은 위 사진과 같이 공유를 할 수 있게 됩니다. 그것을 사용하기 위해서는 UIActivityViewController를 띄우기만 하면 끝입니다. UIActivityViewController는 무엇일까? 항목 복사, 소셜 미디어 사이트에 콘텐츠 게시, 이메일 또는 SMS를 통한 항목 전송 등과 같은 몇 가지 표준 서비스를 제공하는데 사용하는 ViewController 라고 되어있습니다. 그리고 iPad에서는 popover에서 표현해야 하고 iPhone 및 iPod touch 에서는 모달로 표시해야 합니다. H.I.G 에서 말하는 Activity View는 무엇일까? 자주 사용하는 앱에 빠르게 액세스할 수 있을 뿐만 아니라 메시징과 같은 공유 활동과 복사 및 인쇄와 같은 작업..
반복문 Stride 지정된 값만큼의 시퀀스를 반환합니다. 이해를 쉽게 이야기하면 stride(from:to:by:) 는 from:이상 to:미만의 구간과 동일합니다. stride(from:through:by:) 는 from: 이상 through: 이하 구간과 동일합니다. stride(from: 0, to: 10, by: 2).forEach { print($0, terminator: ", ") } // 0, 2, 4, 6, 8 stride(from: 0, through: 10, by: 3).forEach { print($0, terminator: ", ") } // 0, 3, 6, 9 stride(from: 20, through: 10, by: -2).forEach { print($0, terminato..
우선 각 Image가 무엇을 나타내는지 보려고 합니다. UIImage 모든 이미지 형식에 대한 데이터를 나타내며 관리 가능합니다. immutable 특성으로 항상 이미지 데이터에서 이미지를 만들어야 합니다. 이미지 객체의 불변 특성은 모든 스레드에서 안전하게 만들고 사용할 수 있음을 의미 UIImageView에 있는 이미지를 업데이트하려면 새로운 UIImage를 만들어서 설정해야 한다. 따라서 이미지를 변경할 때에는 CGImage, CIImage 의 데이터를 가져와 변환하고 UIImage를 만들어야 합니다. 이미지 객체는 모든 플랫폼 네이티브 이미지 형식을 지원하지만 PNG 또는 JPEG 파일을 사용하는 것이 좋습니다. 두 가지 형식을 모두 읽고 표시하는 데 최적화되어 있으며, 다른 이미지 형식보다 더 ..
Timer vs DispatchSourceTimer Timer의 기능을 활용 하는 방법 2가지, Timer와 DispatchSourceTimer에 대해 알아보겠습니다 Timer 특정 시간 간격이 경과한 후 실행되어 지정된 메시지를 대상 개체로 보냅니다. "Timers work in conjunction with run loops" main run loop는 Timer에 대한 강력한 참조를 유지하므로 실행 루프를 추가한 후 참조를 유지할 필요가 없습니다. main thread는 앱이 포그라운드에 있을 때 동작합니다. long run loop callout 장기 실행 루프 콜아웃 while the run loop is in a mode that isn't monitoring the timer 타이머를 모니터..
iOS 15 이후에 사용되며 개별 문자 또는 문자 범위에 대한 attributes이 있는 문자열입니다. Attributes 시각적 스타일, 안내 액세스를 위한 접근성, 데이터 원본 간 연결을 위한 하이퍼링크 데이터와 같은 특성을 제공합니다. Attribute key는 각 속성의 이름과 값 유형을 제공합니다. Foundation 및 SwiftUI와 같은 frameworks는 공통 키를 정의하며, custom extension에서 고유한 키를 정의할 수 있습니다. String Attributes 가장 자세하게 설명하면 다음과 같이 AttributeContainer를 만들고 기존 특성 문자열에 병합하여 특성을 설정합니다. var attributedString = AttributedString("This is ..
iOS 15.0 이상부터는 UIButton 구성을 좀 더 쉽게 도와주는 configuration이 생겼습니다. configuration은 UIButton과 그 내용의 모양과 동작을 지정할 수 있습니다. configuration configuration은 아래와 같이 표현됩니다. plain gray tinted filled borderless bordered borderedTinted borderedProminent func update(for: UIButton) -> UIButton.Configuration 지정된 버튼에 대해 업데이트된 구성 사본을 반환할 수도 있습니다. Configuring titles title 및 subtitle의 설정에 대한 내용입니다. title과 subtitle은 예상 가능한..