어떤 수의 소수의 여부를 확인 할 때는, 특정한 숫자의 제곱근 까지만 약수의 여부를 검증하면 된다. 시간복잡도: O(N^1/2) 에라토스테네스의 체는 가장 먼저 소수를 판별할 범위만큼 배열을 할당하여, 해당하는 값을 넣어주고, 이후에 하나씩 지워나가는 방법을 이용한다. 배열을 생성하여 초기화한다. 2부터 시작해서 특정 수의 배수에 해당하는 수를 모두 지운다.(지울 때 자기자신은 지우지 않고, 이미 지워진 수는 건너뛴다.) 2부터 시작하여 남아있는 수를 모두 출력한다. [참고] velog.io/@max9106/Algorithm-에라토스테네스의-체 [코드] import sys import math import itertools N_input = int(sys.stdin.readline()) line = li..
Intro PCA는 데이터가 여러 component(dimension)를 갖고 있을 때, 1) 가장 grouping하기 좋은 특징을 찾아 clustering을 하고 싶을 때 2) 여러 component 중 데이터를 대표하는 component를 구하고 싶을 때 3) dimension을 축소하고 싶을 때 등등의 경우에 쓴다고 생각하면 된다. component 중 가장 데이터를 대표하는 특징을 '주 성분(Principle Component)' 이라고 부른다. Step-By-Step 1. 모든 data를 원점이 중심이 되게 옮긴다. 2. data들로 covariance matrix를 구한다. 3. covariance matrix의 Eigenvalue, Eigenvector들을 구한다. 4. Eigenvalue들..
Java의 Collection에 대해서 알아보자! 이런 애들은 java.util에 있다. Collection List ArrayList Vector LinkedList Set HashSet TreeSet 따로 Map HashMap Hashtable TreeMap Properties List의 종류로 ArrayList, Vector, LinkedList를 써놓았는데 정확한 의미는, List 인터페이스를 구현한 종류 중에서 ArrayList, Vector, LinkedList가 있는 것이다. List와 Set은 둘다 Collection인데 Map은 별개로 분리되어 있다. List와 Set은 객체를 추가, 삭제, 검색 하는 방법에 많은 공통점들이 있다. 반면 Map은 키와 값을 하나의 쌍으로 묶어 관리하기 때..
@AppStorage("isLoggedIn") var isLoggedIn : Bool = UserDefaults.standard.bool(forKey: "isLoggedIn") 이런식으로 PropertyWrapper을 달아서 쓸 수 있다! 만약 Unsupported Type이라면 이런 extension을 달아서 해결할 수 있다. extension Array: RawRepresentable where Element: Codable { public init?(rawValue: String) { guard let data = rawValue.data(using: .utf8), let result = try? JSONDecoder().decode([Element].self, from: data) else { r..
import Cocoa struct Company: Codable { let courseImages: [URL?] public init(from decoder: Decoder) throws { let values = try decoder.container(keyedBy: CodingKeys.self) let nullableEmployees = try values.decode([OptionalObject].self, forKey: .courseImages) // // courseImages = nullableEmployees.compactMap { $0.value } // courseImages = nullableEmployees.map { $0.value } } } public struct Optiona..
"" Firebase 동적 링크는 앱 설치 여부에 관계없이 여러 플랫폼에서 원하는 대로 작동하는 링크입니다. "" 앱이 설치되어 있다면 앱이 실행이 되고, 앱이 설치되어 있지 않았다면 앱스토어나 특정 URL로 가는 액션을 할 수 있다. 하지만 우리가 하고싶어 하는 것은 단순히 앱을 켜는것 그 이상의 액션들이다. [공식 문서] https://firebase.google.com/docs/dynamic-links?hl=ko 링크 생성하기 링크 생성에는 크게 두가지 방법이 있다. 1. 파이어베이스 콘솔에서 생성하기 * Firebase 콘솔에서 링크를 생성하는건 대부분 특정 유저에게 보내거나 유동적인 데이터가 아니라 이벤트, 공지사항 같은 전체에게 보내거나 인스타그램, 페이스북 같은 곳에 광고용 링크를 만들기 위..