학습내용
- 코.테 문제풀이 가장작은수제거하기
- 프로젝트 협업
- Set의 사용용도 알아보기 및 메서드들 탐색
프로젝트시 진행시 효율성에대해
시간을 약속한대로 프로젝트를 끝내는것은 매우 어렵다… 하지만 이대로 방치할 순 없고 조금씩 업무효율을 높일 수 있도록 문제점을 찾아 개선해야한다.
프로젝트 및 협업시 풀어가야할 것들을 To-Do-List에 적어보자.
- FlowChart를 1시간 30분동안 그렸는데 요구사항을 미리 이해해놓은 상태에서 사전에 종이에 그려보았으면 더 30분정도는 단축이 가능할 것같다.
- 약 50분정도 짝.프를 진행했다. 약간 집중력을 흐려질때는 함수내에서도 기능을 구현해야하는 걸 주석으로 적어놓고 그거에 맞는 코드를 구현하면 몇분이라도 단축 가능할 것같다.
- 공식문서를 Set개념과 관련 메서드들을 30분 정도만 읽어보려했으나 HashValue에 대해 궁금해지다보니 30분이나 지체되었다. 깊이 공부하기위한 시간을 빼놓고 필요한것만 확인할 수 있도록 해보자. 그리고 몇분정도 시간소요됬는지도 체크할것
##Set은 항목의 순서가 중요하지 않거나 항목이 한 번만 표시되도록 해야하는 경우 배열 대신 집합을 사용한다.
let numbers: Set<Int> = [1,3,4,8,9,10]
let numbers2: Set<Int> = [4,6,8,10,12,14]
print(numbers.contains(3)) // true
print(numbers == numbers2) // false 비교할 수 있는 이유는 Hashable이 Equatable이라는 비교할 수 있게해주는 프로토콜을 채택하고 있기때문이다.
print(numbers.isSubset(of: numbers2)) // false
print(numbers.isSuperset(of: numbers2)) // false
// 합집합 (단, 중복은 허용하지않는다)
print(numbers.union(numbers2)) // [10, 1, 4, 9, 14, 6, 12, 3, 8]
// 교집합
print(numbers.intersection(numbers2)) // [10, 4, 8]
// 차집합
print(numbers.symmetricDifference(numbers2)) // [9, 1, 6, 12, 3, 14]
print(numbers.subtracting(numbers2)) // [3, 1, 9]
// 고차함수 보너스
// 배열의 값을 순서대로 더한다.
let primesSum = numbers.reduce(0, +)
print(primesSum)
// 배열의 값을 오름차순으로 정렬하고 Int -> String으로 형변환하여 초기화한다.
// String($0)를 할필요도없이 String.init을 해줄 수 있다.
let primeStrings = numbers.sorted().map(String.init)
print(primeStrings)
'야곰커리어캠프_TIL' 카테고리의 다른 글
20200213 / D8 / 함수명 지을때 명사로..? (0) | 2022.02.15 |
---|---|
20200211 / D5 / 인스턴스 끼리 값할당 시 주의사항(feat. 옵셔널체이닝) (0) | 2022.02.11 |
20220210 / D4 / 컴퓨터의 구조(Feat. Cs공부방법..?) (0) | 2022.02.11 |
20220209 / D3 / 하드코딩 지양하는 방법 간단히 알아보자 (0) | 2022.02.10 |
2022.02.07 / D1 / Mutating에대해서 (0) | 2022.02.09 |