KSI일기장
프로그래머스 합성수 찾기(자바) 본문
class Solution {
public int solution(int n) {
int answer = 0;
for (int i=1; i<=n; i++) { //1~n까지의 숫자(i)를 각 하나씩 접근
int a = 0;
for (int j=1; j<=i; j++){ //1~n까지의 숫자 중 각 해당 숫자 이하의 숫자(j)를 하나씩 접근
if (i%j==0){ //n이하의 숫자의 약수인 경우
a++; //a(약수의 개수)를 +1씩 증가
if (a>=3){ //약수가 3개 이상인 경우 (a가 3이상인 경우)
answer++; //answer +1씩 증가
break;
}
}
}
}
return answer;
}
}
풀이 시 발생했던 문제
: a초기화 구문이 answer초기화 구문 아래 있었는데 원하는 결과가 나오지 않았다.
a를 증가시켜주는 부분(a++)에서 if조건 충족 후 a가 증가하고 나서 초기화가 되지 않아
다음 if조건 (a>=3)에 계속 충족 되 answer가 원하는 결과보다 훨씬 더 많이 증가한 것이었다.
해결방법
: n이하의 숫자(i)의 약수의 개수(a)를 구하고 나서 a를 초기화(int a=0;) 해주었더니 제대로 된 결과가 나왔다.
'JavaAlgorithm' 카테고리의 다른 글
프로그래머스 1차원 배열 다차원 배열로 만들기(자바) (0) | 2024.01.16 |
---|---|
프로그래머스 중복된 문자 제거 (자바) (0) | 2023.12.20 |
프로그래머스 문자열 정렬(2) (자바) (0) | 2023.12.14 |
프로그래머스 369게임 (자바) (0) | 2023.12.14 |
프로그래머스 숫자 찾기 (자바) (0) | 2023.12.14 |