일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Tags
- 프로그래머스 #JAVA #코딩테스트 #다음에 올 숫자 #코딩
- 프로그래머스 #자바 #java #코딩테스트 #연속된 수의 합 #코딩
- JAVA #객체지향언어 #절차지향언어 #코딩 #Python #C #C++ #객체지향 #절차지향
Archives
- Today
- Total
Javadocs
[ Programmers ] Lv.0 제곱수 판별하기(Java) 본문
https://school.programmers.co.kr/learn/courses/30/lessons/120909
[ 문제설명 ]
어떤 자연수를 제곱했을 때 나오는 정수를 제곱수라고 합니다.
정수 n 이 매개변수로 주어질 때, n이 제곱수라면 1을, 아니라면 2를 return하도록 solution 함수를 완성해주세요.
[ 제한사항 ]
- 1 ≤ n ≤ 1,000,000
[ 입출력 예 ]
n | result |
144 | 1 |
976 | 2 |
[ 입출력 예 설명 ]
입출력 예 #1
- 144는 12의 제곱이므로 제곱수입니다. 따라서 1을 return합니다.
입출력 예 #2
- 976은 제곱수가 아닙니다. 따라서 2를 return합니다.
class Solution {
public static int solution(int n) {
int answer = 0;
int cnt = 0; // 약수의 개수
for (int i = 1; i <= n; i++ ) {
if (n % i == 0) { // 약수를 판별
cnt++; // 약수에 해당하면 cnt를 계속 더해준다.
}
if (cnt % 2 == 0 ) { // 약수의 개수가 짝수라면 제곱수가 아님
answer = 2;
} else {
answer = 1;
}
}
return answer;
}
}
[ 설명 ]
주어진 수를 1부터 반복문을 실행하여 약수의 개수(cnt)를 구해준다.
구한 약수의 개수 cnt를 짝수 / 홀수를 판단하여 준다. (짝수인 경우 - 제곱수가 아님, 홀수인 경우 - 제곱수에 해당)
'SelfStudy > Programmers(코딩테스트)' 카테고리의 다른 글
[ Programmers ] 문자열 밀기 (Java) (0) | 2023.03.17 |
---|---|
[Programmers] OX 퀴즈 (0) | 2023.03.15 |
[ Programmers ] Lv.2 n^2 배열 자르기 (1) | 2023.03.13 |
[ Programmers ]Lv.0 연속된 수의 합 (JAVA) (1) | 2023.02.26 |
[ Programmers ]Lv.0 다음에 올 숫자 (JAVA) (0) | 2023.02.22 |
Comments