내일배움캠프 앱개발 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 의 범위 내에서, 주어진 배열에 포함되는 요소가 없다면 해당 요소를 새 배열에 담아주었다
- 다른 사람의 풀이
- filter와 contains와 논리 not 연산자를 사용해서 조건을 걸러주었다
(0...9).filter { !numbers.contains($0) }
다른 사람의 풀이란...
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) }
}
return arr.reduce(0, +)
}
ㄴ 내가 한 문제 풀이
import Foundation
func solution(_ numbers:[Int]) -> Int {
return (0...9).filter { !numbers.contains($0) }.reduce(0, +)
}
ㄴ 많은 깨달음을 준 코드..
- 내가 뉘역뉘역 네댓줄 잡아먹으며 푼 문제를 단 한줄로 풀어낸 것을 보고 놀랐다
- 사실, 앞에서 문제를 풀 때 열심히 찾아서 새로 배웠던 메서드들이라 저 풀이를 보고 조금 분했다ㅎㅎ
- 생각을 아직은 유연하게 하지 못하는 것 같다. 그러니까 하던대로 반복문 + reduce 만 써서 문제를 풀고 있었지
- 내일부터는 튜터님들께 여러모로 질문을 많이 하게 될 것 같다
- 미리 안 적어두면 잊어버리니까 일단 여기에 적어두겠음...
여쭤보고 싶은 점
- 알고리즘을 공부하는 초반 (프로그래머스 레벨 0~1)에는 깊게 파고드는 것 보다 많이 풀어보는 게 맞는지? (물량공세?)
- 자료구조 따로 공부 해야 하나요?
- DFS, BFS, 정렬, 백트래킹, DP, 분할정복, 최단거리 라는게 알고리즘 기초라던데...(하나도 모른다) 어떤 유형부터 공부를 하는 게 좋은지?
- 백준이 낫나요 프로그래머스가 낫나요 (둘 다 하는게 나을 거 같긴 하다)
- 이런 경우에는 https://yy-dev.tistory.com/39 어떤게 더 나은 방향일지 궁금
- 리턴할때 바로하는게 나은지 변수나 상수에 담아서 그 값을 리턴하는게 나은지
- 깃허브에 잔디심기라는게... 취준하고 포트폴리오 낼 때 영향을.. 미치는지? (성실성?)
오늘의 TIL을 끝내며...
아까 담임매니저님과 1대1 면담할 때 아직 딱히 질문이 없다고 했는데 그냥 내가 꽁꽁 숨기고 있던거였음
뭘 질문하지.. 하고 보니까 엄청 많아서 머쓱하다
'TIL' 카테고리의 다른 글
[TIL] 2023.11.27 | 깃허브 온갖 에러를 보다 (0) | 2023.11.27 |
---|---|
[TIL] 2023.11.24 | 프로그래머스 제일 작은 수 제거하기 (0) | 2023.11.24 |
[TIL] 2023.11.22 | Git, Github (0) | 2023.11.22 |
[TIL] 2023.11.21 | 상속 Inheritance 재정의(오버라이딩) Overriding (1) | 2023.11.21 |
[TIL] 2023.11.20 | ARC, 저장/연산 프로퍼티 (1) | 2023.11.20 |