전체 글

· iOS/Swift
연산 프로퍼티 - 특징 저장 공간을 가지지 않음 직접 값을 가지지는 않지만, 저장 프로퍼티의 값을 읽어서 연산 실행 항상 var로 선언해야 함 선언할 때 반드시 자료형을 명시해야 함 var westernAge: Int { get { // 값을 연산하여 리턴할 때 return koreanAge - 1 } set (inputValue) { // 값을 저장(연산)할 때 var koreanAge = inputValue + 1 } } - set의 매개변수 이름은 생략가능 명시적으로 newValue 로 접근해서 사용할 수 있음 var westernAge: Int { get { return koreanAge - 1 } set { var koreanAge = newValue + 1 } } - get-only 읽기 전..
· iOS/Swift
구조체와 클래스에 대한 설명 ⬇️⬇️ https://yy-dev.tistory.com/24 [Swift] 구조체 Struct / 클래스 Class 구조체 struct 구조체이름 { } 클래스 class 클래스이름 { } - Camel Case 구조체 이름의 첫 글자는 대문자로 시작한다 ❌ 언더바는 사용하지 않는게 좋다 ❌ Properties 내부에서 정의된 변수, 상수 특정 yy-dev.tistory.com 구조체 / 열거형 - 값 타입을 사용하는 경우 연관된 몇몇의 값들을 모아서 하나의 데이터 타입으로 표현하고 싶은 경우 다른 객체 또는 함수 등으로 전달될 때 참조가 아니라 복사(값 복사) 할 경우 자신을 상속할 필요가 없거나, 다른 타입을 상속 받을 필요가 없는 경우 스위프트에서의 사용 스위프트의 ..
· iOS/Swift
열거형 Enum - 특징 유사한 종류의 여러 값을 한 곳에 모아서 정의한 것 / 예시) 요일, 월, 계절 등 enum 자체가 하나의 데이터 타입 / 대문자 카멜케이스를 사용하여 이름을 정의 각 case는 소문자 카멜케이스로 정의 각 case는 그 자체가 고유의 값 (각 case에 자동으로 정수값이 할당되지 않음) 각 case는 한 줄에 개별로도, 한 줄에 여러개도 정의할 수 있음 enum 이름 { case 이름1 case 이름2 case 이름3, 이름4, 이름5 // ... } // 예제 1 enum Weenend { case mon case tue case wen case tur case fri case sat, sun } // 예제 2 enum Fruit { case apple case orange,..
프로그래머스 문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/12932 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 # 1번풀이 func solution(_ n:Int64) -> [Int] { let value = String(n).reversed() return value.map{ Int(String($0))! } } # 2번풀이 func solution(_ n:Int64) -> [Int] { let arr = String(n).map{ Int(String($0))! } ret..
프로그래머스 문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/12931 풀이 import Foundation func solution(_ n:Int) -> Int { var answer:Int = String(n).reduce (0, { $0 + Int(String($1))! }) return answer } 중요 개념 입력받은 자연수가 있다. 각 자릿수의 합을 구하는 문제이다. N = 123이면 1 + 2 + 3 = 6을 return reduce 컨테이너 내부의 값을 하나로 통합하여 더하는 메소드 func reduce( _ initialResult: Result, _ nextPartialResult: (Result, Self.Elem..
· TIL
내일배움캠프 앱개발 iOS 트랙 사전캠프 Today I Learned 성취 - 오늘의 나는 무엇을 잘 했는지 알고리즘 문제를 평소보다 다양하게 많이 풀어보았다 백준 Swift 알고리즘 풀이를 위한 XCode readLine 세팅을 했다 개선 - 어떤 문제를 겪었는지, 어떻게 해결할 것인지 대문자는 소문자로, 소문자는 대문자로 바꾸는 문제가 있었는데 이것에 대한 키워드는 알았지만 정확히 어떤 메소드를 사용해야 하는 지는 몰랐다 내가 눈치챈 키워드 > uppercase, lowercase 애플 개발자 문서 (Apple Developer Document)를 찾아보며 관련 메소드를 찾아서 문제를 해결할 수 있었다 https://developer.apple.com/documentation/swift Swift |..
프로그래머스 문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/181948 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 import Foundation print(#"!@#$%^&*(\'"?:;"#) 중요 개념 특수문자를 출력하기 위해서는 문자열 따옴표 앞 뒤로 # 를 붙여준다 여러줄의 문자열을 출력하기 위해서는 문자열 따옴표 대신 """를 사용한다 let starWars = """ SHIP NAME CLASS DEPLOYMENT IN SERVICE N2 Bomber Heavy F..
프로그래머스 문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/181949 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 import Foundation let s1 = readLine()!.map{ $0.isUppercase ? $0.lowercased() : $0.uppercased() }.joined() print(s1) 중요 개념 대,소문자를 체크한 뒤 반대로 바꾸어 주는 문제이다 uppercase, lowercase 라는 단어를 알고 있어서 힌트를 쉽게 캐치해냈다 https..
프로그래머스 문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/181950 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 import Foundation let inp = readLine()!.components(separatedBy: [" "]).map { $0 } let (s1, a) = (inp[0], Int(inp[1])!) print(String(repeating: s1, count: a)) 중요 개념 문자열을 주어진 횟수만큼 반복해서 출력하는 문제이다 init( repea..
프로그래머스 문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/181850 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 import Foundation func solution(_ flo:Double) -> Int { return Int(flo) } 중요 개념 실수의 소숫점 아래 숫자를 버리고 정수로 만들어주는 문제이다 간단하게 Int 로 형변환 해주어 해결한다
프로그래머스 알고리즘 문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/181863 풀이 import Foundation func solution(_ rny_string:String) -> String { let answer = rny_string.replacingOccurrences(of:"m",with:"rn") return answer } 중요 개념 m이라는 문자를 rn이라는 다른 문자로 치환하는 문제이다 문자열 치환 메소드를 사용한다 replacingOccurrences(of:with:) of: "기존 문자" with: "바꿀 문자" https://developer.apple.com/documentation/foundation/n..
· TIL
내일배움캠프 앱개발 iOS 트랙 사전캠프 Today I Learned 성취 - 오늘의 나는 무엇을 잘 했는지 프로젝트 파일의 버전관리를 위한 git에 대해 파악 git을 이용하기 위한 github 사이트 사용법 익히기 개선 - 어떤 문제를 겪었는지, 어떻게 해결할 것인지 homebrew를 사용해서 git을 설치하던 중, 하단의 에러가 발생했다 m1칩 이상부터 발생하는 오류인 것 같다 homebrew가 /usr/local/... 이 아니라 /opt/homebrew/ 에 설치되어 있기 때문에 발생한다 eval $(/opt/homebrew/bin/brew shellenv) 상단 명령어를 터미널에 입력해주면 해결할 수 있다 더 자세한 정리 -> https://yy-dev.tistory.com/26 학습 - 나는..
YEN_
YEN's CodeWeave