말랑한 하루
[Programmers] 삼총사 (Lv 1, Python) 본문
반응형
[ 학습 내용 ]
※ itertools
( 무한 반복 )
### count
count(10)
#result : 10 11 12 13 14 ...
### cycle
cycle('ABCD')
#result : A B C D A B C D ...
### repeat
repeat(10, 3)
#result : 10 10 10
( 짧은입력 시퀸스 )
### accumulate
accumulate([1,2,3,4,5])
#result : 1 3 6 10 15
### chain
chain('ABC', 'DEF')
#result : A B C D E F
### chain.from_iterable
chain.from_iterable(['ABC', 'DEF'])
#result : A B C D E F
### compress
compress('ABCDEF', [1,0,1,0,1,1])
#result : A C E F
### dropwhile
dropwhile(lambda x: x<5, [1,4,6,4,1])
#result : 6 4 1
### filterfalse
filterfalse(lambda x: x%2, range(10))
#result : 0 2 4 6 8
### islice
islice('ABCDEFG', 2, None)
#result : C D E F G
### pairwise
pairwise('ABCDEFG')
#result : AB BC CD DE EF FG
### starmap
starmap(pow, [(2,5), (3,2), (10,3)])
#result : 32 9 1000
### takewhile
takewhile(lambda x: x<5, [1,4,6,4,1])
#result : 1 4
### zip_longest
zip_longest('ABCD', 'xy', fillvalue='-')
#result : Ax By C- D-
( 조합 )
### product
# 중첩 for 루프와 동일한 데카르트 곱
product('ABCD', repeat=2)
#result : AA AB AC AD BA BB BC BD CA CB CC CD DA DB DC DD
### permutations
# 가능한 모든 순서, 반복 요소 없음
permutations('ABCD', 2)
#result : AB AC AD BA BC BD CA CB CD DA DB DC
### combinations
# 정렬된 순서, 반복 요소 없음
combinations('ABCD', 2)
#result : AB AC AD BC BD CD
### combinations_with_replacement
# product + combinations, 반복되는 요소가 있는 정렬된 순서
combinations_with_replacement('ABCD', 2)
#result : AA AB AC AD BB BC BD CC CD DD
[ 소스 코드 ]
from itertools import combinations
def solution(number):
trio = [sum(combi) for combi in list(combinations(number, 3)) if sum(combi) == 0]
return len(trio)
### trio = [sum(combi)]
# trio에는 combi 배열값이 sum된 값들을 list형태로 넣을 것입니다.
### for combi in list(combinations(number, 3))
# 그중 combi 배열은 number배열에서 3길이를 가지는 순열요소입니다.
### if sum(combi) == 0
# 그 순열요소 중 combi 배열 합값이 0이되는 배열만을 남깁니다.
반응형
'문제풀이 > Programmers' 카테고리의 다른 글
[Programmers] 문자열 뒤집기 (Lv 0, JavaScript) (0) | 2022.12.05 |
---|---|
[Programmers] 택배상자 (Lv 2, Python) (0) | 2022.10.25 |
[Programmers] 삼총사 (Lv , Java) (0) | 2022.10.25 |
[Programmers] 롤케이크 자르기 (Lv 2, Python) (0) | 2022.10.22 |
[Programmers] 롤케이크 자르기 (Lv 2, Java) (0) | 2022.10.22 |
Comments