본문 바로가기

전체 글303

[Swift] 클래스와 구조체 클래스 VS 구조체공통점값을 저장하기 위한 프로퍼티 정의기능을 제공하기 위한 메소드 정의 subscript 문법을 이용해 특정 값을 접근할 수 있는 subscript 정의초기 상태를 설정할 수 있는 initializer 정의기본 구현에서 기능 확장특정한 종류의 표준 기능을 제공하기 위한 프로토콜 순응(conform)차이점(클래스만 가능)상속 (Inheritance): 클래스의 여러 속성을 다른 클래스에 물려 줌타입 캐스팅 (Type casting): 런타임에 클래스 인스턴스의 타입을 확인소멸자 (Deinitializers): 할당된 자원을 해제(free up) 시킴참조 카운트 (Reference counting): 클래스 인스턴스에 하나 이상의 참조가 가능구조체를 사용하는 경우주 목적이 관계된 간단한 값.. 2024. 3. 19.
[Swift] 클로저 클로저(Closures)어떤 상수나 변수의 참조를 캡처(값의 참조를 갖는다.)해 저장할 수 있는 코드 블럭Swift는 관련된 메모리를 알아서 처리 클로저의 형태전역 함수 : 이름이 있고 어떤 값도 캡처하지 않는 클로저중첩 함수 : 이름이 있고 관련한 함수(하위→상위)로 부터 값을 캡처 할 수 있는 클로저클로저 표현 : 경량화 된 문법으로 쓰여지고 관련된 문맥(context)으로부터 값을 캡쳐할 수 있는 이름이 없는 클로저 클로저 표현 (Closure Expressions)인라인 클로저를 명확하게 표현하는 방법으로 문법에 초점이 맞춰져있음코드의 명확성과 의도를 잃지 않으면서도 문법을 축약해 사용할 수 있는 다양한 문법의 최적화 방법을 제공 정렬 메소드(The Sorted Method)Swift 표준 라이브.. 2024. 3. 18.
[Swift] 예외 처리와 함수 1. 예외 처리오류 처리의 개념프로그램에 에러가 발생했을 때, 이를 감지하고 복구하는 프로세스모든 프로그램이 항상 원하는대로 정확히 동작한다는 보장이 없기 때문에 오류가 발생할 수 있음을 항상 고려해야 함guardguard 조건 else {조건이 거짓일 때 실행될 구문}// someValue 가 0이 아닐 경우에만 출력guard someValue != 0 else { return }print(someValue)조건들을 걸러낼 때 사용가독성을 위해 사용조건식에 이 함수가 수행하는데 필요한 조건을 그대로 적는다는 점에서 guard 구문이 코드를 분석할 때 가독성이 좋아짐func printMessage(_ message: String?) { if message == nil { return } print(.. 2024. 3. 17.
[Swift] 조건/반복문 1. 조건문조건문의 개념어떠한 값이 특정 조건에 해당할 때만 선택적으로 코드를 실행if-elseif 조건 { //조건이 만족되면 실행} else { //조건이 만족되지 않으면 실행}var a : String = "철수"var b : String = "짱구"var c : String = "맹구"if a == "철수" { print("정답!")}else { print("a는 \\(a)입니다.")}if b == "유리" { print("정답!")}else { print("b는 \\(b)입니다.")}// 정답!// b는 짱구입니다.var age : Int = 19var student : String = ""if age >= 8 && age else if 를 사용하면 다중 제어 가.. 2024. 3. 17.
[Swift] 콜렉션 타입 1. Array배열의 정의swift에서 가장 일반적으로 사용되는 자료구조 중 하나동일한 유형의 값의 순서가 있는 콜렉션 타입각 요소는 인덱스를 사용해 접근 가능배열의 선언과 초기화대괄호([]) 기호를 사용하여 빈 배열을 선언var numbers: [Int] = []var numbers = [Int]()대괄호([]) 안에 값을 쉼표로 구분하여 나열var numbers = [1, 2, 3, 4, 5]배열을 초기화 할 때, 타입 어노테이션(type annotation)을 사용하여 배열의 타입 지정 가능var numbers: [Int] = [1, 2, 3, 4, 5]Swift는 타입 추론(type inference)을 지원하기 때문에, 타입을 생략할 수 있음초기값을 기반으로 배열의 타입을 추론var number.. 2024. 3. 16.
[Swift] 변수와 프로퍼티2 * 2023년 Apple Developer Academy @ POSTECH 에서 swift 스터디를 하며 공부한 내용입니다 4. 필요성데이터 보존/관리데이터 저장변수는 데이터를 저장이를 통해 값을 기억하고 필요할 때 다시 사용데이터 조작변수는 저장된 데이터를 조작.ex-값을 증가시키거나 감소시키거나, 두 값을 더하거나 빼는 등의 작업을 수행데이터 전달변수는 프로그램 내에서 데이터를 전달ex-한 함수에서 다른 함수로 데이터를 전달하거나 뷰 컨트롤러에서 뷰로 데이터를 전달데이터를 보존하고 필요시에 참조하고 관리하기 위한것이 변수를 사용하는 가장 큰 목적주소로 모든 것을 관리하기 어렵기 때문에 주소는 운영체제가 관리하고 우리는 변수 이름만 가지고 관리하면 변수의 이름이 붙여진 공간을 운영체제가 알아서 찾아가서.. 2024. 3. 15.
[Swift] 변수와 프로퍼티1 * 2023년 Apple Developer Academy @ POSTECH 에서 swift 스터디를 하며 공부한 내용입니다 1. 변수/프로퍼티의 개념변수의 개념프로그램에서 데이터를 저장하는 메모리 공간이름, 형, 메모리 주소, 값, 영역 등으로 특성을 구분지어 볼 수 있음var number1 : Int = 20이름 = 변수를 구분하기 위해 사용 ⇒ number1고유 이름을 ‘식별자’(Identifier)’라고 함형 = 타입 = 데이터의 자료형 ⇒ Int값 = 변수에 들어가는 데이터 ⇒ 20영역 = 변수가 사용 가능한 범위 변수와 상수변수변할 수 있는 값을 저장var 변수명 : 데이터 타입 = 값데이터 타입은 생략 가능상수변하지 않는 일정한 값을 저장let 상수명 : 데이터 타입 = 값데이터 타입 생략 가.. 2024. 3. 15.
[코드트리 챌린지] 6주차 - 그래프 탐색 지난번 보다 떨어진 이번 실력 체크...ㅜㅜ 다음에 더 열심히 해야겠다.,... https://www.codetree.ai/cote/14/problems/move-in-direction/ 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석 국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요. www.codetree.ai 방향에 맞춰 이동 문제 (0, 0)에서 시작하여 총 N번 움직여보려고 합니다. N번에 걸쳐 움직이려는 방향과 움직일 거리가 주어졌을 때, 최종 위치를 출력하는 프로그램을 작성해보세요. 단, dx, dy 테크닉을 활용하여 문제를 해결해주세요. 입력 형식 첫 번째 줄에 정수 N이 주어집니다. 두 번째 줄부터는 N개의 줄에 .. 2023. 10. 16.
[코드트리 챌린지] 5주차 - HashMap 지난번과 동일하게 746점....🥲 https://www.codetree.ai/missions/8/problems/hashmap-basic/description 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석 국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요. www.codetree.ai HashMap 기본 문제 n개의 명령이 주어졌을 때, 각 명령을 수행하는 프로그램을 작성해보세요. 명령의 종류는 크게 3가지 입니다. add k v : (k, v) 쌍을 hashmap에 추가합니다. key가 k, value가 v라는 뜻입니다. 이때 만약 동일한 k가 이미 존재한다면, v로 덮어씁니다. remove k : key가 k인 쌍을 찾아 .. 2023. 10. 4.
[코드트리 챌린지] 4주차 - 완전 탐색 지난번과 동일하게 746🥲 https://www.codetree.ai/cote/14/problems/best-place-of-13-2/description 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석 국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요. www.codetree.ai 최고의 13위치 2 문제 N * N 크기의 격자 정보가 주어집니다. 이때 해당 위치에 동전이 있다면 1, 없다면 0이 주어집니다. N * N 격자를 벗어나지 않도록 1 * 3 크기의 격자 2개를 서로 겹치지 않게 적절하게 잘 잡아서 해당 범위 안에 들어있는 동전의 개수를 최대로 하는 프로그램을 작성해 보세요. 단, 1 * 3 크기의 격자는 세로로는 1.. 2023. 10. 4.
반응형