본문 바로가기

개발/알고리즘

프로그래머스_소수 찾기

이 문제는 구현 방식을 떠올리는 것 보다는 피지컬이 필요한 문제였다.

이 문제를 통해 파이썬의 모르는 문법이 많다는 것을 알게 되었다.

(파이썬 문법 잡긴해야하는데,,, 어떻게 해야 할까,,?)

 

나는 저 list(map(''.join, permutations(data, i)))가 왜 저렇게 나오는지,,, 모르겠다.

모르는 문법들 다 정리하자.

map, list, join, permutation 등등,,

 

 

파이썬 문법 정리

map

map(f, iterable)은 함수(f)와 반복 가능한(iterable) 자료형을 입력으로 받는다. map은 입력받은 자료형의 각 요소를 함수 f가 수행한 결과를 묶어서 돌려주는 함수이다.

 

위의 코드를 다시 보자면, permutations(data, i)을 통해 여러 데이터 리스트가 나온다.

그 리스트를 map의 오른쪽 param에 넣고, 해당 리스트들을 하나씩 가져와 ''.join을 적용시킨다.

근데,,, 이걸 list로 왜 묶어야 하지,,,?

list는 무슨 함수야?? 난 그냥 string을 list로 하니까 배열로 하나씩 쪼개서 나온다. 로만 알고 있었다.

 

->

permutation(data, 2)하면 dataP2를 해서 나오는 값이 (1,2,3,4)이런 식으로 저장이 된다.

그래서 ''.join을 통해서 1234로 만들어 준 것이였다.

 

 

 

ex).

>>> list(map(lambda a: a*2, [1, 2, 3, 4]))

 

>>> def two_times(x):

            ... return x*2 ...

       list(map(two_times, [1, 2, 3, 4]))

 

join