쥐수의 공부노트
백준 10807번 개수 세기 + 고차 함수 본문
728x90
정답 :
코드가 너무 긴 것 같아서 한번 다른 방법을 찾아보는 도중, 고차 함수를 찾았다.
내가 사용한 함수는 map과 filter이다.
Map
map 함수는 데이터를 변형하는데 사용하는데, 기존 데이터를 변형하여 새로운 컨테이너를 만드는 역할이다.
for - in 구문이랑 굉장히 비슷하지만, map 함수는 코드도 짧아지고, 기존 데이터를 이용하는데 용이하고, 컴파일러 최적화 성능도 뛰어나다!
위 코드에서는 readLine으로 읽은 입력값을 Int로 변형하여 array에 저장되는 것! ( $0 : 클로저의 첫번째 인자 )
Filter
filter 함수는 데이터를 추출하는데 사용한다.
우리의 목적은 같은 숫자가 몇 개 있는지 확인하는 것이므로, $0이 num과 같은 경우를 count하면 된다.
Reduce
지금 문제에서는 사용하지 않았지만, 고차함수는 3가지다.
Reduce 같은 경우는 데이터를 합쳐주기 위해 사용한다.
앞으로는 고차함수를 사용하면서, 손에 익게 만들어야겠다..
728x90
'swift 알고리즘 > 1차원 배열' 카테고리의 다른 글
백준 10813번 공 바꾸기 (0) | 2023.04.19 |
---|---|
백준 10810번 공 넣기 (0) | 2023.04.19 |
백준 2562번 최댓값 (0) | 2023.04.19 |
백준 10818번 최소, 최대 (0) | 2023.04.19 |
백준 10871번 X보다 작은 수 (0) | 2023.04.19 |