티스토리 뷰

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

 

프로그래머스

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

programmers.co.kr

 

문제 임의의 양의 정수 n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴

제한조건 n > 0인 정수 

 

내 답안

def solution(a, b):
    answer = 0
    if a == b:
        answer = a
    elif a < b: 
        for i in range(a, b+1, 1):
            answer += i
    else:
        for i in range(b, a+1, 1):
            answer += i

    return answer

이번에는 별로 파이써닉하지는 못하다.

a, b 둘 중 어느 숫자가 클지 알 수 없으므로 거기서 오류가 나지 않게 신경 썼지만, 사실 a가 크면 b와 바꿔주기만 하면 된다. 

 

다시 풀어본 답안

def solution(a, b):
    if a > b:
        a, b = b, a
    
    return sum(range(a, b+1))

 

a가 b보다 클 때 a, b를 바꿔준다. 그리고 sum 함수를 써보았다. 

아까보다 훨씬 깔끔하고 직관적이다.