코딩테스트

[25.12.16 코테(Python)]-피타고라스의 정리&삼총사

지니248 2025. 12. 16. 11:04

Lv0. 피타고라스의 정리 (Python)

링크: https://school.programmers.co.kr/learn/courses/30/lessons/250132

내가 작성한 코드
-> 디버깅 문제(1줄만 수정하여 버그 고치기)

# -—-디버깅 수정 전-—-
a = int(input())
c = int(input())

b_square = c - a
print(b_square)

# -—-디버깅 수정 후—--
a = int(input())
c = int(input())

b_square = (c ** 2) - (a ** 2) # 한 줄만 수정
print(b_square)


새로 배운 코드

a = int(input())
c = int(input())

b_square = pow(c , 2) - pow(a , 2)
# pow(x, y): x의 y제곱을 계산하는 함수
# pow(c, 2): c * c를 하는 것과 같음

print(b_square)

Lv1. 삼총사 (Python)

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

내가 작성한 코드

def solution(number):
    answer = 0
    n = len(number)
    
    for i in range(n): # 첫 번째 학생
        for j in range(i+1, n): # 두 번째 학생(중복 방지 위해 i보다 뒤에서 선택)
            for k in range(j+1, n): # 세 번째 학생
                if number[i] + number[j] + number[k] == 0: # 세 학생의 정수 번호 합이 0인지 확인
                    answer += 1 # 삼총사 1가지 발견하여 경우의 수 1 증가
    return answer


새로 배운 코드

from itertools import combinations

def solution (number):
    cnt = 0
    
    # combinations(): 중복 없이 일정 개수를 골라 모든 조합을 자동으로 만들어주는 함수
    for i in combinations(number,3): #number 배열에서 중복 없이 3개의 숫자를 고른 모든 조합을 생성
        if sum(i) == 0 : # 선택된 3개 숫자의 합이 0이면
            cnt += 1 # 삼총사 1가지 발견 -> 개수 1 증가
    return cnt