본문 바로가기

알고리즘/python

[python/파이썬] 프로그래머스 Lv.1 삼총사

반응형

[문제 출처]

https://school.programmers.co.kr/learn/courses/30/lessons/131705

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

[문제 풀이]

 

리스트 number는 학생들의 정수 번호를 담고 있다.

세 명의 학생들의 정수번호의 합이 0일 경우 이 학생들은 삼총사라고 할 수 있다.

주어진 번호를 이용해 삼총사를 만들 수 있는 경우가 몇 가지인지 구하는 문제이다.

 

 

✅소스 코드

 

간단하게 3개의 for문으로 모든 경우의 합을 구해서 0일 때 answer를 1 증가해 주었다.

이 문제의 경우 number의 길이가 13 이하이기 때문에 아래와 같은 코드로 실행하여도 오래 걸리지 않는다.

하지만 number의 길이가 커지면 수행시간이 기하급수적으로 커지기 때문에 다른 방식으로 푸는 것을 추천한다.(n^3에 비례하기 때문)

def solution(number):
    answer = 0
    for i in range(len(number)-2):
        for j in range(i+1, len(number)-1):
            for k in range(j+1, len(number)):
                if number[i]+number[j]+number[k] == 0:
                    answer += 1
    return answer
반응형