쥐수의 공부노트

백준 10807번 개수 세기 + 고차 함수 본문

swift 알고리즘/1차원 배열

백준 10807번 개수 세기 + 고차 함수

쥐수 2023. 4. 19. 13:51
728x90

정답 : 

TMI : 없다!

코드가 너무 긴 것 같아서 한번 다른 방법을 찾아보는 도중, 고차 함수를 찾았다.

TMI : map과 filter를 이해하는데 오래 걸렸다..

내가 사용한 함수는 map과 filter이다.

 

Map

map 함수는 데이터를 변형하는데 사용하는데, 기존 데이터를 변형하여 새로운 컨테이너를 만드는 역할이다.

 

for - in 구문이랑 굉장히 비슷하지만, map 함수는 코드도 짧아지고, 기존 데이터를 이용하는데 용이하고, 컴파일러 최적화 성능도 뛰어나다!

 

위 코드에서는 readLine으로 읽은 입력값을 Int로 변형하여 array에 저장되는 것! ( $0 : 클로저의 첫번째 인자 ) 

 

Filter

filter 함수는 데이터를 추출하는데 사용한다.

우리의 목적은 같은 숫자가 몇 개 있는지 확인하는 것이므로, $0이 num과 같은 경우를 count하면 된다.

 

Reduce

지금 문제에서는 사용하지 않았지만, 고차함수는 3가지다.

Reduce 같은 경우는 데이터를 합쳐주기 위해 사용한다.

 

위 for-in 구문과 비교했을 때, 매우 간결하다!

앞으로는 고차함수를 사용하면서, 손에 익게 만들어야겠다..

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