가끔 생각을 해요 ʕتʔ

📌 코딩테스트 실력이 한참 멀었다고 느껴서 혼자 계획을 한 후 코테 연습을 하는 상황이었다.
계획한 대로 꾸준히 해야 하는데 조금씩 풀어진다고 느끼는 도중, 99클럽 스터디를 알게 되었고
동기부여가 필요하다는 생각이 들어서 99클럽 스터디에 참여신청을 했다.

 

🍒 프로그래머스 - 정수 제곱근 판별

문제

임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다.

n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요.

 

  • 제한사항
    n은 1이상, 50000000000000 이하인 양의 정수입니다.
  • 입출력 예 #1
    121은 양의 정수 11의 제곱이므로, (11+1)를 제곱한 144를 리턴합니다.
  • 입출력 예 #2
    3은 양의 정수의 제곱이 아니므로, -1을 리턴합니다.

풀이

import math
def solution(n):
    x = math.sqrt(n)
    num = 0
    if x.is_integer():
        num = (x + 1) ** 2
    else:
        num = -1
    
    return num

 

🍒 TIL

 

  • math.sqrt(), is_integer() 메서드를 사용했는데, 다른 풀이방법을 보니 sqrt = n ** (1/2) 이 방법으로도 제곱근을 구할 수 있었다.
  • 사실 지금 사용하고 있는 언어는 자바스크립트인데, 코딩테스트 주력언어가 아니다 보니 코딩테스트 언어로는 제일 먼저 배웠던 파이썬을 선택했다. 파이썬이 직관적으로 풀이를 볼 수 있고, 풀이자료도 방대하다보니 선택하게 되었다. 하지만 다시 다른 언어로 작성하다 보니 머리로는 어떻게 풀이해야 하는지 알겠는데, 어떤 메서드를 사용해야할지부터 익숙하지 않았고 문법오류가 나서 어찌저찌 찾아서 풀게 되었다. 이걸 반 성공이라 해야할지 실패라고 해야할지 모르겠지만 일단 긍정적으로 반 성공이라구 하자,,!
    이건 코테를 꾸준히 풀게 되면 나아지는 문제라고 생각한다. 꾸준히 하자!
  • 비기너 레벨부터 시작하고 있지만 스터디 외에 개인적으로 다른 문제도 더 풀어보고 공부도 하면서 기록을 남기는게 중요하다고 생각했다. 꾸준히 기록해서 성장하는 개발자로 나아가기 위함이고, 나에게 생긴 문제점과 고민들을 어떻게 해결해나갔는지 포트폴리오에 남기기 위한 목적도 있다.
  • 프로젝트를 하면서 겪었던 문제들을 비록 예전에 노션에 기록해뒀던 내용이지만 좀 더 가다듬고 다시 복습하며 글로 정리해보려 한다.

공유하기

facebook twitter kakaoTalk kakaostory naver band