📝 문제
>임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다.
n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요.

https://programmers.co.kr/learn/courses/30/lessons/12934
코딩테스트 연습 - 정수 제곱근 판별
임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함
programmers.co.kr
🎨 풀이
💡 첫 번째 시도 = 성공 코드
def solution(n):
answer = 0
num = n ** 0.5
if n == int(num) ** 2:
answer = ( int(num) + 1 ) ** 2
else : answer = -1
return answer
>
1. n에 루트를 씌운 후 num에 넣는다.
2-1. num의 제곱이 n과 일치하는지 비교한다. (num이 양수라면 제곱했을 때 정확하게 n으로 돌아옴)
2-2. 일치한다면 answer에 int(num) + 1 의 제곱을 넣어준 후 return한다.
2-3. 일치하지 않으면 answer에 -1을 넣어준 후 return한다.

끝~
⭐ 느낀점
> 와,... 이 문제 내가 왜 테스트 케이스 이상한 걸 추가해뒀는지.. ㅋㅋㅋㅋㅋㅋ 이유는 잘 모르겠지만 ㅠㅠ 그거 때문에 문제 이해를 못했었는데,, 내 생각에는 질문하기에서 이상한 걸 보고 잘못 적용했든지 아니면 그냥 잘못 이해하고나서 이상하게 적용했든지 둘 중 하나인 거 같다. 내가 적어둔 테스트 케이스는 n = 27, answer = 38 이였다. ㅋㅋㅋㅋㅋㅋ숫자도 안 잊혀져 ㅠㅠ. 이런 이상한 실수는 한 번으로 족하다. 두 번 다시는 이런,, 말도 안되는 실수를 하지 않을 것이다. 하하.. 어쨌든 고생 참 많았다.. 잘 풀었다...
'🎲 알고리즘 공부 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 / Level 2] 이진 변환 반복하기 (파이썬) (0) | 2022.09.14 |
---|---|
[DAY 103 - 프로그래머스 / Level 2] k진수에서 소수 개수 구하기 (파이썬) (0) | 2022.07.03 |
[프로그래머스 / Level 1] 최소직사각형 (파이썬) (0) | 2022.05.13 |
[프로그래머스 / Level 1] 나머지가 1이 되는 수 찾기 (파이썬) (0) | 2022.05.12 |
[프로그래머스 / Level 2] 짝지어 제거하기 (파이썬) (0) | 2022.05.11 |