프로그래머스 문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/70128 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내가 제출한 풀이 import Foundation func solution(_ a:[Int], _ b:[Int]) -> Int { let count: Int = a.count var value: Int = 0 for i in 0 ... count - 1 { value += a[i] * b[i] } return value } 풀이 과정 길이가 같은 1차원 정수 배열 a, ..
전체 글
프로그래머스 문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/12922 내가 제출한 풀이 func solution(_ n:Int) -> String { let value = String(repeating: "수박", count: n/2) return n % 2 != 0 ? "\(value)수" : value } 풀이 과정 길이 n이 주어졌을 때 "수박수박수..." 패턴을 유지하며 n만큼 문자열을 반환하는 문제이다. n == 2 -> 수박 n == 3 -> 수박수 n == 4 -> 수박수박 n == 5 -> 수박수박수 n == 13 -> 수박수박수박수박수박수박수 같은 문자열이 반복되므로 나는 init(repeating: count:) 를..
프로그래머스 문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/12903 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내가 제출한 풀이 func solution(_ s:String) -> String { let arr = Array(s) let count = s.count var result: String count % 2 != 0 ? (result = "\(arr[count/2])") : (result = "\(arr[count/2 - 1])\(arr[count/2])") return..
내일배움캠프 앱개발 iOS 트랙 본캠프 1주차 Today I Learned # 프로그래머스 문제 _ 링크 :: 제일 작은 수 제거하기 (Swift) # 발생한 에러 알고리즘 문제를 풀다가 처음으로 시간초과를 마주했다. 시간초과는 테스트 케이스 1번에서만 발생했지만, 다른 테스트 케이스들도 이상하게 오래 걸렸다. # 오류를 낸 코드 func solution(_ arr:[Int]) -> [Int] { guard arr.count != 0 else { return [-1] } let result = arr.filter{ $0 > arr.min()! } return arr.count [Int] { guard arr.count != 0 else { return [-1] } let minValue = arr.min..
내일배움캠프 앱개발 iOS 트랙 본캠프 1주차 Today I Learned filter(_:) -> https://yy-dev.tistory.com/62 주어진 값을 매개변수의 조건에 맞게 걸러낸다 주어진 값 - 대부분 콜렉션 매개변수 - Bool 타입으로 반환되는 클로저 프로그래머스 문제 풀이 https://yy-dev.tistory.com/59 해당 문제의 경우, 나는 for - in 을 돌려서 조건에 부합하는 요소를 걸러냈다. 그리고 조건 또한 단순히 배열로 박아두었다 다른 사람의 풀이를 보고... 우선, 조건이 0 이상 9 이하로 아주 단순하고 명확했다 ... 범위 연산자를 사용해서 0 ... 9 로 지정할 수 있었다 나는 해당 0 ... 9 의 범위 내에서, 주어진 배열에 포함되는 요소가 없다면..
고차함수란? 다른 함수를 전달인자로 전달받거나, 함수 실행의 결과를 함수로 반환하는 함수 말이 너무 어렵다... 단순하게는? 매개변수로 함수를 가지는 함수 특히 컬렉션(배열, 딕셔너리, 집합) 정리하는 기능으로 많이 사용합니다 ㄴ 왜 쓰나요? 함수형 프로그래밍의 장점을 사용하기 위해서! 코드 간결 코드 재사용 쉬움 컴파일러 최적화 측면에서의 성능 차이 멀티스레드 환경에서 부작용 방지 Reduce(_:_:) 값을 조건에 맞게 걸러내는 함수입니다 매개변수로 전달되는 클로저의 리턴 타입은 Bool 형 이에요 func filter(_ isIncluded: (Element) throws -> Bool) rethrows -> Set - 예시 1 let cast: Set = ["Vivien", "Marlon", "..
고차함수란? 다른 함수를 전달인자로 전달받거나, 함수 실행의 결과를 함수로 반환하는 함수 말이 너무 어렵다... 단순하게는? 매개변수로 함수를 가지는 함수 특히 컬렉션(배열, 딕셔너리, 집합) 정리하는 기능으로 많이 사용합니다 ㄴ 왜 쓰나요? 함수형 프로그래밍의 장점을 사용하기 위해서! 코드 간결 코드 재사용 쉬움 컴파일러 최적화 측면에서의 성능 차이 멀티스레드 환경에서 부작용 방지 Reduce(_:_:) 주어진 요소의 모든 내부 값을 더해서 반환하는 함수입니다 매개변수로 전달받은 클로저의 연산 결과를 반환한다고도 말해요 func reduce( _ initialResult: Result, _ nextPartialResult: (Result, Self.Element) throws -> Result ) r..
고차함수란? 다른 함수를 전달인자로 전달받거나, 함수 실행의 결과를 함수로 반환하는 함수 말이 너무 어렵다... 단순하게는? 매개변수로 함수를 가지는 함수 특히 컬렉션(배열, 딕셔너리, 집합) 정리하는 기능으로 많이 사용합니다 ㄴ 왜 쓰나요? 함수형 프로그래밍의 장점을 사용하기 위해서! 코드 간결 코드 재사용 쉬움 컴파일러 최적화 측면에서의 성능 차이 멀티스레드 환경에서 부작용 방지 Map(_:) 기존에 있는 데이터를 변경할 때 사용해요 매개변수로 전달된 함수를 실행하고, 그 결과값을 반환합니다 기존값에 영향을 주지 않아요. 복사된 값을 반환하기 때문에 원본 값에 문제가 생기지 않아요 func map(_ transform: (Self.Element) throws -> T) rethrows -> [T] ..
프로그래머스 문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/86051?language=swift 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 import Foundation func solution(_ numbers:[Int]) -> Int { let standard = [1,2,3,4,5,6,7,8,9] var arr: [Int] = [] for i in standard { if numbers.contains(i) == false { arr.append(i) } } retur..
프로그래머스 문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/12948 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 func solution(_ phone_number:String) -> String { let openNumber = phone_number.suffix(4) var star = "" (phone_number.prefix(phone_number.count-4)).map { _ in star += "*" } return String("\(star)\(openNumbe..
프로그래머스 문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/76501 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 import Foundation func solution(_ absolutes:[Int], _ signs:[Bool]) -> Int { var arr: [Int] = [] for i in 0...signs.count-1 { signs[i] == true ? arr.append(absolutes[i]) : arr.append(-absolutes[i]) } return..
내일배움캠프 앱개발 iOS 트랙 본캠프 1주차 Today I Learned 성취 - 오늘의 나는 무엇을 했는지 내배캠에서 git의 사용법, github를 이용한 협업에 관한 특강을 마련해주었다 기본적으로 터미널에서 쓸 수 있는 리눅스 키워드를 알게 되었다 git 에 데이터를 올리거나 복제할 때 사용하는 키워드를 알게 되었다 개선 - 어떤 문제를 겪었는지, 어떻게 해결할 것인지 예시로 VScode를 사용해서 알려주셨기 때문에 Xcode 에서의 용법을 다시 익혀야합니다 🤔 이미 기존에 사용하던 개발자들이 블로그/유튜브에 잘 정리를 해 두셨을 것이기 때문에 그 글을 잘 읽으며 파악하도록 해야만!! ⭐ 내배캠에서 제공한 강의를 보며 만든 프로젝트를 깃허브에 올려보며 사용법을 익혀봅시다 ⭐ 학습 - 나는 어떤 것..