[Swift][일일 코드 #27]코딩도장 – Special Sort
Problem - Special Sort (Level 2) n개의 정수를 가진 배열이 있다. 이 배열은 양의정수와 음의 정수를 모두 가지고 있다. 이제 당신은 이 배열을 좀 특별한 방법으로 정렬해야 한다....
Problem - Special Sort (Level 2) n개의 정수를 가진 배열이 있다. 이 배열은 양의정수와 음의 정수를 모두 가지고 있다. 이제 당신은 이 배열을 좀 특별한 방법으로 정렬해야 한다....
Problem - 가장 짧은 지점 구하기 (Level 2) 1차원의 점들이 주어졌을 때, 그 중 가장 거리가 짧은 것의 쌍을 출력하는 함수를 작성하시오. (단 점들의 배열은 모두 정렬되어있다고 가정한다.)...
App Transport Security 애플이 iOS9부터는 http를 https로 해야지만 네트워크 연결할 수 있도록 하였습니다. 하지만 예외는 항상 존재하는 법. 특정 도메인에 대해서 http를 허용하거나 아예 http를 허용하도록 해주었습니다. 특정...
Problem - Duplicate Numbers(Level 1) 0~9까지의 문자로 된 숫자를 입력 받았을 때, 이 입력 값이 0~9까지의 숫자가 각각 한 번 씩만 사용된 것인지 확인하는 함수를 구하시오. sample inputs:...
Spotlight에 앱의 내용을 검색해달라는 기능 요청으로 Search API를 사용해보았습니다. Search API 앱 내용 검색 등록 앱 내용을 검색할 수 있도록 아이템을 만들어야 합니다. 그러기 위해선 CoreSpotlight와 MobileCoreServices 프레임워크가...
Swift2 Swift 2에서 에러를 던지고 받을 수 있습니다. 기존 Objective-C에서도 지원이 되었지만, Swift2에서는 ErrorType을 확장하여 사용할 수 있습니다. 즉, 유저가 Custom Error를 던지고, 받을 수 있게 된 것이죠....
주의 : 본 글은 Swift 2.0으로 작성되었기 때문에 Swift 1.x 코드와 호환되지 않습니다. Mirror를 사용하여 JSON 데이터 만들기 Swift에서 Reflection을 이용하여 타입의 서브셋 메타데이터를 제한적으로 읽을 수 있습니다....
앱 개발하면서 앱 아이콘의 디자인이 바뀔 때마다 툴을 이용해서 리사이즈를 하곤 했습니다. 하지만 자주 있는 일이 아니다 보니 툴을 다시 찾아 사용하곤 했는데 상당히 귀찮았습니다. Python을 이용하여 앱...
동적 디스크립션 만들기 클래스를 만들고 사용하다 보면 디스크립션 또는 QuickLookObject를 만들려니 귀찮은 적이 있습니다. 그래도 한번 만들면 계속 써먹겠지 하다가 클래스가 많아지고, 속성이 하나둘씩 늘어나면 유지 보수하기가 점점...
Problem 023 자신을 제외한 약수(진약수)를 모두 더하면 자기 자신이 되는 수를 완전수라고 합니다. 예를 들어 28은 1 + 2 + 4 + 7 + 14 = 28 이므로...
함수 묶기(Binding) 중첩된 조건문이 많아지면 조건문들을 이해해야 되고, 점점 코드의 복잡도는 증가됩니다. 이러한 조건문들을 함수 단위로 잘게 나누고 묶어 사용할 수 있습니다. func bind<A, B>(a: A?, f: A...
Method Swizzling Swizzling이란 뒤섞다라는 의미입니다. 그래서 Method Swizzling은 원래의 메소드를 runtime 때 원하는 메소드로 바꾸어 사용할 수 있도록 하는 기법입니다. 원하는 메소드로 바꾸어 사용하게 되면 메소드를 호출하기 전에...
Problem 022 여기 5천개 이상의 영문 이름들이 들어있는 46KB짜리 텍스트 파일 names.txt 이 있습니다 (우클릭해서 다운로드 받으세요). 이제 각 이름에 대해서 아래와 같은 방법으로 점수를 매기고자 합니다. 먼저...
Associated Objects이란 Associated Objects는 런타임시 사용자 속성이나 메소드들을 서브클래스를 만들지 않고 추가하거나 제거할 수 있습니다. Objective-C 2.0 런타임의 기능으로 강력하지만 불안정한 요소를 가지고 있으며, 혹자는 악마와의 거래라고도 합니다....
Problem 021 n의 약수들 중에서 자신을 제외한 것의 합을 d(n)으로 정의했을 때,서로 다른 두 정수 a, b에 대하여 d(a) = b 이고 d(b) = a 이면 a, b는...
Problem 020 n! 이라는 표기법은 n × (n − 1) × … × 3 × 2 × 1을 뜻합니다. 예를 들자면 10! = 10 × 9 × …...
Problem 019 다음은 달력에 관한 몇 가지 일반적인 정보입니다 (필요한 경우 좀 더 연구를 해 보셔도 좋습니다). 1900년 1월 1일은 월요일이다. 4월, 6월, 9월, 11월은 30일까지 있고, 1월,...
Problem 018 삼각형의 꼭대기부터 아래쪽으로 인접한 숫자를 찾아 내려가면서 합을 구하면, 위의 그림처럼 3 + 7 + 4 + 9 = 23 이 가장 큰 합을 갖는 경로가...
꼬리 재귀(Tail Recursion) 꼬리 재귀는 함수를 호출하면서 스택을 재사용합니다. 일반적인 재귀는 스택이 쌓이고, 호출되지 않으면 스택을 하나씩 정리합니다. 하지만 꼬리 재귀는 스택이 쌓이지 않기 때문에 메모리를 아낄 수...
Problem 017 1부터 5까지의 숫자를 영어로 쓰면 one, two, three, four, five 이고, 각 단어의 길이를 더하면 3 + 3 + 5 + 4 + 4 = 19...
Problem 016 2^15 = 32768 의 각 자리수를 더하면 3 + 2 + 7 + 6 + 8 = 26 입니다. 2^1000의 각 자리수를 모두 더하면 얼마입니까? Solution...
Problem 015 아래와 같은 2 × 2 격자의 왼쪽 위 모서리에서 출발하여 오른쪽 아래 모서리까지 도달하는 길은 모두 6가지가 있습니다 (거슬러 가지는 않기로 합니다). 그러면 20 × 20...
Problem 012 1부터 n까지의 자연수를 차례로 더하여 구해진 값을 삼각수라고 합니다. 예를 들어 7번째 삼각수는 1 + 2 + 3 + 4 + 5 + 6 + 7...
Problem 011 아래와 같은 20×20 격자가 있습니다. 08 02 22 97 38 15 00 40 00 75 04 05 07 78 52 12 50 77 91 08 49...
Problem 013 아래에 50자리 숫자가 100개 있습니다. 이것을 모두 더한 값의 첫 10자리는 얼마입니까? Solution let strLists = [ "37107287533902102798797998220837590246510135740250", "46376937677490009712648124896970078050417018260538", "74324986199524741059474233309513058123726617309629", "91942213363574161572522430563301811072406154908250", "23067588207539346171171980310421047513778063246676", "89261670696623633820136378418383684178734361726757", "28112879812849979408065481931592621691275889832738", "44274228917432520321923589422876796487670272189318", "47451445736001306439091167216856844588711603153276",...
Problem 014 양의 정수 n에 대하여, 다음과 같은 계산 과정을 반복하기로 합니다. n → n / 2 (n이 짝수일 때) n → 3 n + 1 (n이 홀수일...