
Swift Basic 조건문 If - else if - else 구문 if 만 단독으로 사용 가능 if 조건 뒤에는 Bool 타입 값만 존재해야함 조건 부분의 소괄호는 선택사항 switch 구문 정수타입의 값만 비교하는 것이 아니라 대부분의 스위프트 기본 타입을 지원 default 구문은 반드시 작성해야한다. 명시적으로 break를 하지 않아도 자동으로 case마다 break가 된다. fallthrough 키워드로 break를 무시할 수 있다. 쉼표(,)를 사용해서 하나의 case에 여러 패턴을 명시할 수 있다. let test: String = "test3" switch test { case "test1": print(1) case "test2": print(2) case "test", "test3":..

Swift Basic 명명법 / 콘솔로그 / 문자열 보간법 1. 명명법 Upper Camel Case: type(class, struct, enum, extension) 등 Lower Camel Case: 그 외(function method, variable, constant) 2. 콘솔로그 남기기 print 함수: 단순 문자열 출력 dump 함수: 자세한 설명까지 출력 3. 문자열 보간법(String Interpolation) - \(변수 또는 상수)를 문자열에 삽입하여 바로 출력 가능 상수와 변수 1. 상수와 변수 선언 let: 차후 변하지 않는 값(상수)를 선언할 때 사용 var: 차후 변하는 값(변수)를 선언할 때 사용 기본 데이터 타입 1. Bool true / false값을 가지는 값 2...
Convention General Conventions 시간복잡도가 O(1)이 아닌 것을 명시한다(Document the complexity of any computed property that is not O(1)) 사람들은 일반적으로 정보들을 기억하고 생각해내는데에 같은 시간이 걸리므로 특정 정보에 접근하는 것에 추가적인 시간이 들지 않는다고 생각한다. 이 때문에, 코드에서 Property에 접근하는 계산이 모두 O(1)으로 작동한다고 생각하기 쉬우며 O(1)이 아닐 경우 명시해줄 필요가 있다. free function보다 property와 method를 더 이용해야한다(Prefer methods and properties to free functions) free function: Swift에서는 ..

Naming(명명법) Promote Clear Usage 모호성을 피하기위해 모든 단어를 포함해라(Include all the words needed to avoid ambiguity) 위의 예시의 경우 remove의 parameter에서 at을 사용하지 않으면 명확하지 않다. x에서 제거하는 것인지, x를 제거하는 것인지 불분명하므로 명확히 표현해줘야한다. 반례에서 x가 position이 아니고 삭제하는 값 자체일 경우 label을 뭐라고 하는게 좋을까? ... label 없이 parameter로 value: x 로 표현해도 괜찮을 것 같다. 의미없는 단어를 생략하라(Omit needless words) 명확성을 위해 더 많은 단어가 사용되는 것은 좋지만, 너무 많은 단어와 정보는 생략되어야 한다. 위..

[Club House] 프로그래머스x최강iOS팀이 만나다(21.03.04) 단순한 알고리즘 문제풀이만으로 블로그를 작성하는 것은 의미가 없다 어떤 방식으로 해결했는지보다 중요한 것은 제가 고민한 흔적을 남기는 것입니다. 어떤 고민의 결과 어떤 방식을 찾았고, 남들과 다르게 추가적으로 한 고민의 흔적이 있으면 더 좋을 수 있습니다. 조금 하기 어려운 프로젝트를 제공받아서 진행할 때 크게 발전할 수 있다 버거운 프로젝트를 받아 진행하는 과정에서 벽에 부딪혀야 프로그래밍적으로 발전할 요소가 큽니다. 스토리보드보다는 코드 베이스로 진행한다 혼자하는 프로젝트일 경우에는 스토리보드처럼 시각적인 기준으로 프로젝트를 진행해도 관계가 없지만, 프로그램의 규모와 커밋에 참여하는 참여자가 많아질수록 코드 베이스일 때 소통이..

문제 www.acmicpc.net/problem/17299 17299번: 오등큰수 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이 주어진다. www.acmicpc.net 문제 상황 - 앞서 풀이한 오큰수에서 크기로 비교하는게 아니라 출현 횟수를 기준으로 판단하는 차이밖에 없다. 해결 전략 - stack을 활용하여 왼쪽을 쳐다봐서 횟수의 내림차순을 유지하는 구조로 코딩한다. 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 from sys import stdin from collections import Counter input = stdin.readline n = ..

문제 www.acmicpc.net/problem/2493 2493번: 탑 첫째 줄에 탑의 수를 나타내는 정수 N이 주어진다. N은 1 이상 500,000 이하이다. 둘째 줄에는 N개의 탑들의 높이가 직선상에 놓인 순서대로 하나의 빈칸을 사이에 두고 주어진다. 탑들의 높이는 1 www.acmicpc.net 문제 상황 - 탑의 높이가 주어지고 각 탑이 발사한 레이저 신호는 해당 탑의 왼쪽에 존재하는 탑들 중 더 높고, 가장 가까운 탑에서 수신 가능하다. 각 탑이 발사한 신호를 수신하는 탑의 순서를 반환하여 출력한다. 해결 전략 - 단순히 생각하면 하나의 기준 탑을 잡고, 그 왼쪽을 순회하며 봐야하므로 O(N^2)으로 해결 가능하다. 하지만 문제 조건이 최대 500,000개의 탑 이므로 N^2, 혹은 N*M의..
- Total
- Today
- Yesterday
- Triangle#Sorting#Codility#Python
- Distinct#Codility#Python
- 암호코드#dp#BOJ#Python
- 섬의개수#백준알고리즘#Python
- 날짜 계산#BOJ#완전탐색#Python
- 백준 알고리즘#BackTracking
- Brackets#Stacks and Queues#Codility#Python
- API#lazy#
- 파이썬알고리즘인터뷰#4장
- Swift#Tuples#Range
- 배열합치기#분할정복#BOJ#Python
- django#slicing
- 터틀비치#리콘#xbox#controller
- PassingCars#Codility#Python
- 종이자르기#분할정복#BOJ#Python
- 순열사이클#BOJ#Python
- 쿼드트리#BOJ#분할정복#Python
- 리모컨#완전탐색#BOJ#Python
- django
- 미로 탐색#백준알고리즘#Python
- 텀 프로젝트#백준알고리즘#Python
- N으로 표현#DP#Programmers#Python
- 공유기 설치#BOJ#이분탐색#Python
- filter#isalnum#lower
- 병든 나이트#BOJ#탐욕법#Python
- 나무자르기#BOJ#이분탐색#Python
- NumberofDiscIntersections#Codility#Sort#Python
- 반복수열#백준알고리즘#Python
- 랜선자르기#이분탐색#BOJ#Python
- 토마토#백준알고리즘#Python
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |