일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Notice
Recent Posts
Recent Comments
Link
Tags
- string과 stringbuilder
- 배열 순환
- 외계행성의 나이 자바
- string과 stringbuilder의 차이점
- 개미 군단 자바
- 프로그래머스 문자열 정렬하기(1)
- 배열 순환 자바
- 스프링 부트 프로젝트 세팅
- spring boot 배너 설정
- 자바 소인수분해
- 자바 합성수 찾기
- string과 stringbuilder의 차이
- 자바 팩토리얼
- 경우의 수 자바
- 프로그래머스
- 스프링 부트 배너 설정
- 오블완
- 프로그래머스 공 던지기 게임
- 모스부호(1) 자바
- 접속 url 출력
- 왓챠피디아 클론 코딩
- 스프링부트 의존성 설정
- 티스토리챌린지
- 펙토리얼
- string과 stringbuilder 성능 차이
- 배열 순환 문제 공식
- 숨어있는 숫자의 덧셈 (1) 자바
- 소인수분해 구하는 공식
- string과 stringbuilder 성능 최적화
- stringbuilder란
Archives
- Today
- Total
여름 언덕에서 배운 것
[0단계/1점]순서쌍의 개수 본문
어려웠음..
class Solution {
public int solution(int n) {
int answer = 0;
for(int i=1; i*i<=n; i++){
if(n%i==0){
answer++;
if(i!=n/i){
answer++;
}
}
}
return answer;
}
}
1️⃣ i * i <= n이 왜 필요한가?
우리는 어떤 숫자 n의 약수를 찾고 싶어.그런데 모든 약수는 짝을 이룬다!
즉, a * b = n인 (a, b) 약수 쌍이 존재해.
예를 들어, n = 20이라면:
- 1 * 20
- 2 * 10
- 4 * 5
- (5 * 4 부터는 중복이 시작됨!)
- (10 * 2, 20 * 1도 앞에서 이미 나왔어!)
💡 즉, 약수를 찾을 때 절반만 찾으면 돼!
반대쪽 약수는 자동으로 알 수 있거든
2️⃣ 왜 i * i <= n인가?
어떤 숫자 n이 있을 때, 그 숫자의 약수 중 최소 하나는 반드시 √n 이하야!
즉, i를 1부터 √n까지만 확인하면, 반대 약수(n / i)를 같이 찾을 수 있어!
예제: n = 20
- i = 1 → 1 * 20
- i = 2 → 2 * 10
- i = 4 → 4 * 5
- i = 5 → 5 * 4 (이제 중복이 시작됨! 멈춰도 됨!)
💡 즉, 5 이상부터는 볼 필요가 없어!
- 왜냐하면 반대 약수(n / i)로 이미 다 나왔기 때문이야.
즉, i가 √n을 넘어가면, 이미 모든 약수를 찾았으므로 중복이 시작됨!
그래서 i * i <= n까지만 검사하면 돼.
.
3️⃣ 예제별로 더 확인해보자!
(1) n = 36
√36 = 6, 즉 i는 6까지만 확인하면 된다!
i 값i * i 값n % i == 0 확인추가된 약수
1 | 1 | 36 % 1 == 0 ✅ | 1, 36 |
2 | 4 | 36 % 2 == 0 ✅ | 2, 18 |
3 | 9 | 36 % 3 == 0 ✅ | 3, 12 |
4 | 16 | 36 % 4 == 0 ✅ | 4, 9 |
5 | 25 | 36 % 5 == 0 ❌ | - |
6 | 36 | 36 % 6 == 0 ✅ | 6, 6 (중복) |
7 이상 | 49 > 36 | (반복 종료) | - |
💡 중복되는 6,6을 제외하면 약수는 9개!
즉, i * i <= n까지만 확인하면 모든 약수를 찾을 수 있어.
728x90
'가랑비에 옷 젖는 줄 모른다 💻 > 🌰코테문풀_꾸준히' 카테고리의 다른 글
[0단계/1점]가위 바위 보 (0) | 2025.03.05 |
---|---|
[0단계/1점]모스부호(1) (1) | 2025.03.05 |
[0단계/1점]진료 순서 정하기 (0) | 2025.03.05 |
[0단계/1]외계행성의 나이 (0) | 2025.03.05 |
[0단계/1점]개미군단 (0) | 2025.03.05 |