Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 |
30 | 31 |
Tags
- 확률밀도함수
- 연속확률변수
- 이항분포
- 기댓값과 분산
- pmf
- 포아송분포
- 조건부확률
- 첨가행렬
- 절삭평균
- 사조사
- 피어슨상관계수
- 균일분포
- 행사다리꼴
- 베르누이분포
- 이변량자료
- 표본공간
- 모수
- 수학적확률
- 범주형자료
- 통계학입문
- 기본행연산
- 누적분포함수
- 이산확률질량함수
- 모평균
- 통계학개론
- 표본평균
- jupyter notebook
- 수치형자료
- 이산형
- Anaconda
Archives
- Today
- Total
Syeonny의 블로그
프로그래머스 lv.1 삼총사 본문
문제
한국중학교에 다니는 학생들은 각자 정수 번호를 갖고 있습니다. 이 학교 학생 3명의 정수 번호를 더했을 때 0이 되면 3명의 학생은 삼총사라고 합니다. 예를 들어, 5명의 학생이 있고, 각각의 정수 번호가 순서대로 -2, 3, 0, 2, -5일 때, 첫 번째, 세 번째, 네 번째 학생의 정수 번호를 더하면 0이므로 세 학생은 삼총사입니다. 또한, 두 번째, 네 번째, 다섯 번째 학생의 정수 번호를 더해도 0이므로 세 학생도 삼총사입니다. 따라서 이 경우 한국중학교에서는 두 가지 방법으로 삼총사를 만들 수 있습니다.
한국중학교 학생들의 번호를 나타내는 정수 배열 number가 매개변수로 주어질 때, 학생들 중 삼총사를 만들 수 있는 방법의 수를 return 하도록 solution 함수를 완성하세요.
제한 사항
- 3 ≤ number의 길이 ≤ 13
- -1,000 ≤ number의 각 원소 ≤ 1,000
- 서로 다른 학생의 정수 번호가 같을 수 있습니다.
입출력 예
내 코드
from itertools import combinations
def solution(number):
answer = 0
result = list(combinations(number,3))
for n_list in range(len(result)):
if sum(result[n_list]) == 0:
answer += 1
return answer
완전 탐색 문제
1. 완전 탐색
- 시간 복잡도 O(N^3)
2. 조합
3. 정렬 + 투 포인터 방식
- 시간 복잡도 O(N^2)
수정된 코드
from itertools import combinations
def solution(number):
answer = 0
for comb in combinations(number, 3):
if sum(comb) == 0:
answer += 1
return answer
'코딩테스트' 카테고리의 다른 글
프로그래머스 lv.1 가장 가까운 글자 (0) | 2025.03.04 |
---|---|
프로그래머스 lv.1 시저암호 (0) | 2025.03.03 |
프로그래머스 lv.1 3진법 뒤집기 (0) | 2025.02.17 |
프로그래머스 lv.1 같은 숫자는 싫어 (0) | 2025.01.14 |
프로그래머스 lv.1 행렬의 덧셈 (0) | 2025.01.04 |