일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 코딩
- Stack
- Level2
- 완전탐색
- CodingTest
- level4
- 조합
- python
- lv4
- sql
- 데이터분석
- 시간복잡도
- 연습문제
- import re
- coding
- coding test
- 코딩테스트
- 프로그래머스
- 코테
- collections
- 파이썬
- itertools
- join
- mysql
- time complexity
- counter
- lambda
- Queue
- BFS
- programmers
- Today
- Total
ror_coding
[Programmers] 삼총사 - 131705 본문
728x90
조합 Combinations 사용하는 코드!
보통 3중 포문으로 비교하던데 이게 Time complexity 도 동일하고 더 직관적이다.
Question
한국중학교에 다니는 학생들은 각자 정수 번호를 갖고 있습니다. 이 학교 학생 3명의 정수 번호를 더했을 때 0이 되면 3명의 학생은 삼총사라고 합니다. 예를 들어, 5명의 학생이 있고, 각각의 정수 번호가 순서대로 -2, 3, 0, 2, -5일 때, 첫 번째, 세 번째, 네 번째 학생의 정수 번호를 더하면 0이므로 세 학생은 삼총사입니다. 또한, 두 번째, 네 번째, 다섯 번째 학생의 정수 번호를 더해도 0이므로 세 학생도 삼총사입니다. 따라서 이 경우 한국중학교에서는 두 가지 방법으로 삼총사를 만들 수 있습니다.
한국중학교 학생들의 번호를 나타내는 정수 배열 number가 매개변수로 주어질 때, 학생들 중 삼총사를 만들 수 있는 방법의 수를 return 하도록 solution 함수를 완성하세요.
Point
- combinations 조합 사용.
Code
comb(number,3) 의 시간 복잡도 : O(n^3)
from itertools import combinations as comb
def solution(number):
return sum(not sum(c) for c in comb(number,3))
![](https://t1.daumcdn.net/keditor/emoticon/friends1/large/005.gif)
now me
On my github
728x90
'Algorithm > Python' 카테고리의 다른 글
[Programmers] 문자열 내 마음대로 정렬하기 - 12915 (0) | 2024.10.12 |
---|---|
[Programmers] 최소직사각형 - 86491 (0) | 2024.10.06 |
[Programmers] 이상한 문자 만들기 - 12930 (0) | 2024.10.06 |
[Programmers] 3진법 뒤집기 - 68935 (0) | 2024.10.04 |
[Programmer] 최대공약수와 최소공배수 - 12940 (1) | 2024.10.03 |