프로그래머스 LV1 "정수 제곱근 판별"
프로그래머스 LV1 정수 제곱근 판별
기초부터 다시 공부를 하기위해 프로그래머스 라는 사이트에서 코딩테스트를 LV0 부터 가능한곳까지 못하는곳은 레퍼런스를 찾아가며 풀어보려고 합니다.
매일 1개의 풀이를 하고 그 풀이에대한 나의 생각 및 해석을 적어보려합니다.
오늘은 LV1 문제 ‘정수 제곱근 판별’ 문제입니다.
위 이미지가 프로그래머스 코딩문제입니다.
문제는 매개변수로 n
이 주어집니다. 매개변수 n
이 어떤 양의 정수의 제곱인지 출력하는 문제입니다.
그럼 오늘의 문제를 한번 풀어보겠습니다.
기본 세팅 코드도 알아보겠습니다.
1
2
3
4
function solution(n) {
var answer = 0;
return answer;
}
기본 세팅 코드는 매개변수 n
이 입력되고 함수 안에는 answer
이라는 변수가 선언되어 리턴하는 간단한 기본 세팅 코드입니다.
오늘 문제의 핵심을 간단하게 문제를 풀어보면
양의 정수
n
이 주어졌을 때, 우리는x
라는 양의 정수를 찾아야 합니다.x
의 제곱이n
과 같으면,n
은 양의 정수x
의 제곱입니다. 이 때,x + 1
의 제곱을 반환합니다.x
의 제곱이n
과 다르면,n
은 양의 정수x
의 제곱이 아닙니다. 이 경우,-1
을 반환합니다.
위 순서가 오늘 문제의 핵심입니다.
제곱근
제곱근은 어떤 숫자를 제곱하여 원래의 숫자를 얻을 수 있는 값을 의미합니다. 예를 들어, 9의 제곱근은 3입니다. 이것은 3을 제곱하면 9가 되기 때문입니다.
제곱근은 일반적으로 √ 기호를 사용하여 표현됩니다. √9는 3을 의미합니다. 제곱근은 거듭제곱 연산의 역연산이며, 어떤 숫자의 제곱근을 구한다는 것은 그 숫자를 만들어내는 제곱수를 찾는 것입니다.
예를 들어, 25의 제곱근은 5입니다. 왜냐하면 5를 제곱하면 25가 되기 때문입니다. 제곱근은 수학에서 매우 중요한 개념이며, 다양한 분야에서 활용됩니다.
그럼 오늘 문제의 풀이를 코드로 한번 작성해 보겠습니다.
1
2
3
4
5
6
7
8
9
10
11
12
function solution(n) {
var answer = 0;
var x = 0;
while (x * x < n) {
x++;
}
answer = x * x === n ? (x + 1) ** 2 : -1;
return answer;
}
위 코드의 간단한 설명을 알려드리겠습니다.
먼저
answer
변수를 0으로 초기화합니다.그런 다음
x
변수를 0으로 초기화합니다. 이후x
의 제곱이n
보다 작을 때까지x
를 증가시킵니다.그런 다음
x
의 제곱이n
과 같은지 확인하고, 만약 같다면(x + 1) ** 2
를answer
에 할당합니다. 이 경우,n
이 양의 정수x
의 제곱이므로,x + 1
의 제곱을 반환합니다.만약
x
의 제곱이n
과 같지 않다면, 즉n
이 양의 정수x
의 제곱이 아니라면, -1을answer
에 할당합니다.마지막으로
answer
를 반환합니다.
그럼 코드를 프로그래머스에 한번 확인해보겠습니다.
성공이네요!
오늘은 프로그래머스 LV1 ‘정수 제곱근 판별’ 문제의 대해서 알아봤습니다.
제 방법이 꼭 정답은 아니니 그저 이런방법도 있구나하고 참고용으로만 봐주시면 감사하겠습니다.
감사합니다.