본문 바로가기

SWIFT64

[Swift] 프로퍼티(Properties) 보호되어 있는 글 입니다. 2023. 5. 21.
[백준] (Swift) 20546번 기적의 매매법 머리말 이 문제를 선택한 이유 - 구현 문제 연습 앨런(Allan)과 하고 있는 디코 월목 스터디에서 이번 달에는 구현과 문자열에 집중해 보기 위해 택했다. 알고리즘에 대한 이론보다는 나의 사고 과정을 코드로 옮기는 연습이 필요한 시기였다. 문제 링크 20546번: 🐜 기적의 매매법 🐜 풀이 매매 전략이 두 개이기에 각 전략에 대한 함수가 필요해 보였다. 매개변수는 공통적으로 현재 남아 있는 현금(budget)과 주식 차트의 배열(stockChart)을 설정했다. 현재 주식의 가격은 주식 차트의 배열(stockChart)에서 인덱스로 접근하기로 했다. 각 전략에서 필요한 전량 매수와 전량 매도에 대한 함수를 각각 만들었다. 단순히 변수와 연산자로 구현할 수도 있겠지만, 함수의 가독성을 위해 언제 사고파는.. 2023. 5. 19.
[Swift] 구조체와 클래스(Structures and Classes) 머리말 참고 자료 Swift 영문 공식 문서 - Structures and Classes Structures and Classes | Documentation Swift 한글 공식 문서 - 구조체와 클래스(Structures and Classes) 구조체와 클래스 (Structures and Classes) - Swift 공통점과 차이점 차이점 구조체 클래스 ⭐️ 타입 Value Type Reference Type 메모리 저장 - in Stack - Stack Frame이 종료 시 자동 제거됨 - in Heap - ARC에 의해 자동으로 메모리 관리 인스턴스의 저장 모든 데이터 in Stack - 인스턴스 데이터 in Heap - 변수 in Stack 복사본 생성 값을 할당할 때마다 새로운 메모리 공간을.. 2023. 5. 17.
[프로그래머스] (Swift) 크기가 작은 부분 문자열 - Lv.1 코딩테스트 연습 - 크기가 작은 부분 문자열 | 프로그래머스 스쿨 풀이 문자열을 배열로 분리 매개변수 t의 숫자를, 문자열 타입의 숫자로 하나로 분리한 배열로 변환한다 반복문에 필요한 범위와 부분문자열의 길이를 할당한다 부분문자열이 p보다 작거나 같으면 결괏값을 1 증가시킨다 코드 import Foundation func solution(_ t:String, _ p:String) -> Int { // solution("3141592", "271") // 매개변수 t의 숫자를, 문자열 타입의 숫자로 하나로 분리한 배열로 변환 let stringArray = Array(t).map { String($0) } // ["3", "1", "4", "1", "5", "9", "2"] // 결괏값을 0으로 초기화 v.. 2023. 5. 11.
[프로그래머스] (Swift) 카펫 - Lv.2 코딩테스트 연습 - 카펫 | 프로그래머스 스쿨 머리말 카테고리에 적혀 있는 풀이 힌트 원래 알고리즘을 풀 때 최대한 해당 문제의 주제를 알지 않으려고 한다. 이미 그 알고리즘 방식을 알고 풀면 실제 시험 상황처럼 당황하지 않기 때문이다. 하지만, 사이트에서 이미 완전 탐색임을 알려 주는 바람에 큰 힌트를 얻었다. 풀이 카펫의 면적은 갈색 격자의 수와 노란색 격자 수의 총합과 같다. 카펫의 상하좌우의 끝이 모두 한 줄이기 때문에 가로와 세로의 길이를 각각 2를 빼서 서로 곱하면 그것이 노란색 격자의 수와 같다. /* area = brown + yellow = row * col yellow = (row - 2) * (col - 2) OOOO OXXO OOOO OOO OXO OOO OOOOOOOO OXXXXX.. 2023. 5. 10.
[프로그래머스] (Swift) 비밀지도 (2018 카카오 1차) - Lv.1 머리말 문제 링크 이번 문제는 설명이 매우 길어서 한번에 캡처가 힘들어 링크만 첨부했다. 코딩테스트 연습 - [1차] 비밀지도 | 프로그래머스 스쿨 풀이 처음에는 Swift에서 제곱 메서드를 찾지 못해 직접 구현했다. 우선 정해진 길이의 이진법으로 변환하는 함수를 구현했다. 이진수의 길이와 정해진 길이를 고려해 "0"을 더할지 말지를 정했다. 이제는 매개변수로 주어진 배열을 1번의 함수를 이용해 이진수로 변환한다. 2번으로 구한 이진수로 서로 겹치는 과정이 필요하다. 이진수 문자열을 다시 쪼개어 각 자리를 더하여 크기에 따라 서로 다른 문자열로 변환하고 이를 연결하는 과정을 구현했다. 코드 func solution(_ n:Int, _ arr1:[Int], _ arr2:[Int]) -> [String] {.. 2023. 5. 9.
[Swift] 옵셔널과 언래핑(Optionals and Unwrapping) 머리말 Swift 언어만의 특이한 자료형, 옵셔널(Optional) Swift 언어를 계속 접하다 보면 다른 언어와는 다르게 물음표 기호(?)와 느낌표 기호(!)가 많은 것을 알 수 있다. 처음에는 생소한 개념이고 왜 이런 걸 쓰는지에 대한 의문이 남지만, 쓰면 쓸수록 유용하다는 옵셔널(Optional)에 대해 자세히 알아 보자. 참고 자료 옵셔널(Optionals) - 기본 (The Basics) - Swift 옵셔널 - 앨런 Swift문법 마스터 스쿨 옵셔널 타입(Optional Type) 정의 변수의 값이 없는 경우를 포함하는 임시적인 타입 '선택적인'이라는 뜻의 영단어 optional에서도 알 수 있듯이, 실제로 값이 있을지 없을지를 나타내는 임시적인 타입이다. 'optional'의 검색결과 : .. 2023. 5. 8.
[프로그래머스] (Swift) 짝지어 제거하기 - Lv.2 문제 코딩테스트 연습 - 짝지어 제거하기 | 프로그래머스 스쿨 풀이 자료구조 스택(stack)의 개념 자료구조 스택을 이용하면 쉽게 풀 수 있다. 스택에 대해서는 아래 링크에 정리해 놨으니 확인해 보자. [자료구조] 스택(stack) in Python [자료구조] 스택(stack) in Python 선형 자료구조(linear data structure) 중에서 스택(stack)에 대해 알아 보자. 스택(stack)을 사전에서 찾아보면 무더기, 더미라는 뜻의 영단어이다. 아래의 돌탑이 대표적인 스택이다. 📌 정의 A stack is an andy-archive.tistory.com 스택의 삽입, 삭제 스택의 구현은 배열을 이용하여 메서드로 삽입(append), 삭제(removeLast)를 사용하면 된다. .. 2023. 5. 7.
[Swift] 두 요소의 위치를 바꾸는 방법 (swap 함수 구현과 swapAt 인스턴스 메서드) 들어가기 전에 글을 쓰게 된 이유 코딩테스트를 문제 하나를 풀고 있던 중, Swift 언어로 간단하게 배열의 두 요소를 바꾸고 싶은데 마음대로 되지 않았다. 내가 알던 swap의 알고리즘을 Swift에 적용해 보기도 했고, swapAt이라는 자체 인스턴스 메서드를 활용하여 요소를 바꿀 수 있는 걸 우여곡절 알게 되어서 이를 정리하기 위해 글을 쓰게 되었다. C의 swap 구현 C 언어의 swap 구현 내가 C언어에서 알고 있는 방식의 swap 알고리즘이다. 이를 Swift에 적용해 보고 싶었다. 참고로 코드블럭 언어가 cpp로 적혀 있는 건 티스토리의 코드블럭에서 C가 없어서 그렇다. #include void swap(int* a, int* b); int main(void) { int a = 1; int.. 2023. 5. 4.
[Swift] print 함수로 주어진 여러 아이템을 String 타입으로 표준 출력하기 들어가기 전에 포스팅 이유와 느낀 점 Slack에서 print 함수와 보간법(interpolation)에 대한 차이점의 질문이 올라 와서 나도 궁금해서 공식 문서를 찾아 보며 정리하게 되었다. 당연하게 쓰고 있는 print 함수이지만, 정작 어떻게 제대로 쓰는 줄 몰랐는데 이를 정리하면서 좀 더 깊게 알게 되었다 :) 참고 자료 print에 대한 애플 개발자 공식 문서를 참고했다. 아래에 한글로 적힌 내용은 공식 문서를 최대한 한글의 문맥에 가깝게 번역했다. print(_:separator:terminator:) | Apple Developer Documentation print 함수 정의 공식 문서 정의 Writes the textual representations of the given items i.. 2023. 5. 3.
반응형