본문 바로가기
알고리즘/백준 solved.ac PS

[백준][solved.ac][Bronze 3][Python] 6131번 : 완전 제곱수

by 빛밤하늘 2021. 5. 22.
반응형

밑의 링크는 백준에서의 문제 링크입니다.

 

6131번: 완전 제곱수

상근이는 선영이와 함께 게임을 하고 있다. 먼저, 상근이는 두 양의 정수 A와 B를 고른다. (1 ≤ B ≤ A ≤ 500) 그 다음, 선영이는 상근이가 고른 수를 맞춰야 한다. 상근이는 선영이에게 다음과 같

www.acmicpc.net

 

 

 

 

 

 

 

 

파이썬 코드와 결과입니다.

# readline을 사용하기 위해 import합니다.
from sys import stdin

# 첫째 줄에 N을 입력합니다.
# 1 <= ㅜ <= 1,000
N = int(stdin.readline())

# A, B 쌍의 개수를 저장할 변수를 선언합니다.
AB_pair_cnt = 0

# 1 <= B <= A <= 500
# B를 1부터 500까지 반복해봅니다.
for B in range(1, 501):
    # A를 B부터 500까지 반복해봅니다.
    for A in range(B, 501):
        # B의 제곱이 A의 제곱보다 N만큼 작다면
        if A ** 2 - B ** 2 == N:
            # A, B 쌍의 개수에 1을 더해줍니다.
            AB_pair_cnt += 1

# A, B 쌍의 개수를 출력합니다.
print(AB_pair_cnt)

결과

 

맞았습니다 결과를 보고 다른 사람들의 파이썬 결과를 보니

제가 제출한 코드의 실행 시간인 140ms보다 대략 절반 정도의 실행 시간인 결과들도 많았습니다.

저는 무작정 문제에서 요구한 조건 그대로 구현했는데

뭔가 시간을 더 줄일 수 있는 방법이 있는 것 같습니다.

 

실행 시간을 줄일 수 있는 풀이 방법을 더 생각해보고 나중에 한 번 더 포스팅해봐야겠습니다.

 

 

 

※ 궁금한 부분, 이상한 점 및 오타는 댓글에 부탁드립니다.

※ 더 효율적이고 빠른 정답을 환영합니다.

반응형

댓글