적당한 고통은 희열이다

- 댄 브라운 '다빈치 코드' 중에서

반응형

분류 전체보기 568

[Swift] 메서드 정복하기 Instance / static / class methods 비교

Swift에서는 class, struct, enum 타입 내에서 정의된 함수들을 메서드라고 한다. 호출 방식에 따라 Instance 메서드와 Type 메서드로 나뉘는데, func 키워드로 흔히 사용하는 것이 바로 인스턴스 메서드. 인스턴스 메서드는 클래스 등의 인스턴스를 생성하여 이를 통해 메서드를 호출하고, 타입 메서드는 클래스 등의 타입으로부터 직접 메서드를 호출할 수 있다. 타입 메서드는 오버라이딩 여부에 따라 static 또는 class 메서드로 나뉘는데, static 메서드는 오버라이딩이 불가하기 때문에 오버라이딩이 필요한 경우 class 메서드를 사용할 수도 있다. Methods 메서드란? 일반적으로 func 으로 정의하는 것들을 함수라고 부른다. 그 중에서도 클래스, 구조체, 열거형 타입 내..

[Swift] Class / Struct / Enum Types

값 타입 vs 참조 타입 설명은 다음을 참고 -> Value Type / Reference Type Enumerations 열거형 An enumeration defines a common type for a group of related values and enables you to work with those values in a type-safe way within your code. 연관된 값들을 하나의 그룹으로 묶어 데이터 타입으로 정의한 자료형 열거형을 사용하면 미리 정의해둔 타입의 케이스 내에서 벗어날 수 없으므로 코드의 가독성과 안정성이 높아짐 → 명확한 분기 처리 가능 (열거형은 항상 switch문으로 분기처리 가능) 다른 언어와 다르게 Swift에서 열거형은 값을 따로 선언해주지 않아도 ..

About Swift

Safe, fast and interactive programming language. 안전하고 빠른 대화형 프로그래밍 언어. 3가지 특징 1. 안정성 Safe - 안전한 프로그래밍을 지향하기 때문에 엄격한 문법을 통해 프로그래머가 저지를 수 있는 실수와 버그를 사전에 방지하고자 노력한다. - 옵셔널을 비롯해 guard 구문, 오류처리, 강력한 타입 통제 등을 통해 안전한 프로그래밍을 구현 2. 신속성 Fast - 실행속도의 최적화 뿐만 아니라 더 빠른 컴파일 성능을 구현 3. 더 나은 표현성 Expressive - 사용하기 편하고 보기좋은 문법을 구사하려 노력 - 다중 패러다임 프로그래밍 언어 (명령형 객체지향 + 함수형 + 프로토콜 지향 프로그래밍) 최신 프로그래밍 패턴을 따른다. (Swift 공식문..

[Swift] Access Control 접근 제어자 종류 및 사용

접근 제어자 사용하는 이유 - 외부로부터 데이터를 보호하기 위해서 - 외부에는 불필요한, 내부적으로만 사용되는 부분을 감추기 위해서 더보기 * 참고 : 은닉화(Hiding)란? - 객체지향 개발에서 외부로부터 데이터를 보호하기 위해, 객체 외부에서 객체 내 자료로의 접근을 제한하고, 데이터를 수정하거나 조작하는 동작은 접근자(getter, setter)를 통해 결과만 받는 것. 외부에서의 직접 접근은 막고 메서드를 통해 간접 접근할 수 있도록. 예를 들어 public class 안의 변수 int hour가 0~23 사이의 값을 가져야할 때, 변수의 접근 제어자를 private 으로 하여 외부에서 직접 접근하지 못하도록 하고, setHour 메서드를 통해 간접적으로 접근할 수 있도록 하여 값을 보호할 수 ..

Xcode 다운로드 - 업데이트 먹통 해결 방법 (Xcode 수동 설치)

2024년 업데이트Download에 website 항목이 없어져서 찾기가 귀찮아졌다.로그인 하고 다음 url 로 들어가면 다운로드 가능한 xcode 목록 잘 뜸.https://developer.apple.com/download/all/?q=xcode  xcode 13은 밑에 보니까 10기가가 넘던데 용량은 많이 줄었구나 ^^ 2022년 회사 컴퓨터만 쓰다가 퇴사 후 오랜만에 개인 맥북으로 xcode를 사용하려니 버전이 너무 낮아서 업데이트를 해야만 했다.Xcode 13 이상은 또 MacOS 12 이상부터만 설치 가능하다고 하여 MacOS 부터 업데이트,,업데이트 지옥,,,OS 업데이트 후 앱스토어에서 Xcode 업데이트를 하는데 아니 몇시간이 지나도 진전 없이 그대로에 뭐 정지도 안되고 먹통이 되어버린 ..

[Swift 알고리즘] 백준 2231 분해합

백준 2231번 브루트 포스 예제 2단계 1차시도 : 69100KB / 296ms 아무런 조건 없이 그냥 1부터 다 검사하는 걸로 해도 시간은 오래걸리지만 통과는 되더라. func minGenerator(_ n: Int) -> Int { for i in 1...n { var sum = i for j in String(i) { sum += Int(String(j))! } if sum == n { return i } } return 0 } 2차시도 : 69100KB / 8ms 1부터 다 체크하는 건 비효율적이기 때문에 조건을 달아주었다. 입력 숫자가 256일 경우, 각 자리 수의 최대 합은 2 + 9 + 9 = 20 이 된다고 생각했다. 그러면 256의 생성자는 최소 256 - 20 = 236 이상이 될 수..

Algorithm/Baekjoon 2022.04.28

[알고리즘] 완전탐색 브루트 포스 Brute Force

브루트 포스 (완전탐색) 알고리즘 ex) 비밀번호가 될 수 있는 모든 조합을 다 시도해보는 기법 구현방법 1. for / while 반복문 2. 재귀함수 ex) 프로그래머스 - 소수 찾기 여러 숫자 카드들이 주어졌을 때, 카드들로 가능한 모든 조합의 숫자를 만들어보고, 그 중 소수의 개수를 구해야. 소수 판별 이전에 주어진 카드들로 모든 조합의 수를 만들 줄 알아야. 재귀함수를 계속 호출하면서 각 숫자 카드를 쓸지 안쓸지 결정하며 조합 만들기 브루트 포스만으로 풀 수 있는 코테 문제는 드물지만, 문제의 일부를 브루트 포스 알고리즘을 이용해 풀어야 하는 경우가 많다. => 어떤 종류의 완전 탐색도 기계적으로 잘 구현할 수 있도록 잘 익혀두기! 예) 프로그래머스 - 모의고사, 소수 찾기

[알고리즘] 해시 Hash

Hash Key : Value 의 형태를 갖는 하나의 자료구조 ex) 해시 = 전화번호부. 이름 : key, 번호 : value 해시의 특징 : 모든 데이터 타입으로 접근이 가능하다. 해시 문제들 백준 10816 숫자 카드 2 프로그래머스 - 완주하지 못한 선수 신고 결과 받기 위장 예) 프로그래머스 - 완주하지 못한 선수 n명이 마라톤 참가. n-1명만 완주. 완주하지 못한 1명을 찾는 문제 Hash를 사용하면 아주 간단하게 해결 가능 HashMap 생성. HashMap.put("A", true); HashMap["A"] = true; 와 똑같은 동작 bool fin = hashmap.get("A"); bool fin = hashmap["A"]; 와 같은 동작 getOrDefault 함수 getOrDe..

728x90
반응형