말랑한 하루

[Programmers] 삼총사 (Lv 1, Python) 본문

문제풀이/Programmers

[Programmers] 삼총사 (Lv 1, Python)

지수는말랑이 2022. 10. 25. 11:52
반응형

[ 학습 내용 ]

※ 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이되는 배열만을 남깁니다.

 

반응형
Comments