이분 탐색
·
Algorismus
https://www.acmicpc.net/problem/10816 백준 10816번 문제처럼 개수를 구해야 하는 상황에서 이분 탐색을 유용하게 사용할 수 있다.이분 탐색은 정렬된 데이터에서 범위를 절반씩 줄여가며 찾는 알고리즘으로 중간값을 기준으로 범위를 삭제한다.원리는 lower bound와 upper bound를 찾아서 upper bound - lower bound를 해주면 개수를 구할 수 있다. lower bound는 정렬되어있는 데이터 집합에서 k값 이상이 처음발견되는 위치를 의미하고, upper bound는 k값을 초과하는 값이 처음 발견되는 위치를 의미한다. 예시: [10, 20, 20, 20, 30] 이 배열(정렬된 배열)에서 20의 개수를 찾는 것을 목표로 할 때,20이 처음 발견되는 인..
백준 1436번: 영화감독 숌 (Swift)
·
Algorismus
https://www.acmicpc.net/problem/1436 이 문제는 666이 포함되는 숫자를 찾는 문제다. 나는 이 문제를 보자마자 Int를 String으로 변환해서 "666"이 포함되는지 .contains()로 찾아냈다.import Foundationlet N = Int(readLine()!)!var number = 665var count = 0while true { number += 1 let s = String(number) if s.contains("666") { count += 1 if count == N { print(number) break } }}정답은 나왔지만 시간 초과였다.while문 안에서 반복해서 String 변환을 하..
백준 2231번: 분해합 (Swift), 브루트포스
·
Algorismus
https://www.acmicpc.net/problem/2231문제어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 된다. 따라서 245는 256의 생성자가 된다. 물론, 어떤 자연수의 경우에는 생성자가 없을 수도 있다. 반대로, 생성자가 여러 개인 자연수도 있을 수 있다.자연수 N이 주어졌을 때, N의 가장 작은 생성자를 구해내는 프로그램을 작성하시오.입력첫째 줄에 자연수 N(1 ≤ N ≤ 1,000,000)이 주어진다.출력첫째 줄에 답을 출력한다. 생성자가 없는 경우에는 0을 출력한다. 브루트포스(Brute Force)란?가..
백준 10250번: ACM 호텔 (Swift)
·
Algorismus
https://www.acmicpc.net/problem/10250문제호텔 정문으로부터 걷는 거리가 가장 짧도록 방을 배정하는 프로그램을 작성하고자 한다....여러분이 작성할 프로그램은 초기에 모든 방이 비어있다고 가정하에 이 정책에 따라 N 번째로 도착한 손님에게 배정될 방 번호를 계산하는 프로그램이다. 첫 번째 손님은 101 호, 두 번째 손님은 201 호 등과 같이 배정한다. 그림 1 의 경우를 예로 들면, H = 6이므로 10 번째 손님은 402 호에 배정해야 한다. 입력프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T 개의 테스트 데이터로 이루어져 있는데 T 는 입력의 맨 첫 줄에 주어진다. 각 테스트 데이터는 한 행으로서 H, W, N, 세 정수를 포함하고 있으며 각각 호텔..
백준 2869번: 달팽이는 올라가고 싶다 (Swift)
·
Algorismus
https://www.acmicpc.net/problem/2869문제땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다.달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다.달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오.입력첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B 출력첫째 줄에 달팽이가 나무 막대를 모두 올라가는데 며칠이 걸리는지 출력한다. 내 풀이var input = readLine()!.split(separator: " ").map { Int($0)! }let A = input[0]let B = input[1]var V..
Human Interface guidelines(00) - Apple 디자인 기본 원칙을 배워보세요.
·
디자인/HIG
HIG를 배우기 전에 디자인의 기본 요소와 원칙에 대해서 알아보자. 애플의 공식 홈페이지에서 세 가지 세션을 제공한다.훌륭한 디자인의 특징필수적인 디자인 원칙아이디어에서 인터페이스까지 디자인 기초 구축하기이제부터 애플의 디자인 철학을 이해하기 위해서 이 세션들을 하나씩 살펴보자!모든 것은 디자인에서 시작됩니다. 디자인은 앱의 모양뿐만 아니라 상호작용 방식을 결정하며 사용자의 경험, 인상, 느낌을 주도합니다. 또한 정보 처리, 의사 결정, 주변 세계와의 상호작용 방식에 관한 핵심 원리를 담고 있습니다.Apple 디자이너와 에반젤리스트가 진행하는 비디오 세션에서 Apple의 디자인 원칙에 대해 알아보고 디자인 여정을 시작해 보세요. Apple 팀 멤버와 개발자 커뮤니티가 영감을 얻는 방법, 친근하고 유용하며..