일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 구현
- BFS
- UnrealEngine
- 이분탐색
- 해시
- c#
- UE4
- unityui
- 스택
- Photon
- FSM
- 알고리즘
- Unity3d
- Unity
- QueryDSL
- 유클리드호제법
- 워크플로
- 유니티
- 스파르타내일배움캠프TIL
- C++
- 내일배움캠프
- 스파르타내일배움캠프
- Firebase
- 문자열
- Inventory
- 프로그래머스
- Unity2D
- 순열
- 언리얼엔진
- 포톤
Archives
- Today
- Total
개발 낙서장
[프로그래머스][Java][효율성] 기사단원의 무기 본문
기사단원의 무기
https://school.programmers.co.kr/learn/courses/30/lessons/136798
풀이 방법
약수를 구하는 알고리즘이 있다. 글을 봤는데 잘 이해가 가지 않아서 다시 한 번 봐야할 것 같다.https://chwan.tistory.com/entry/Java-%EC%95%BD%EC%88%98%EC%9D%98-%EA%B0%9C%EC%88%98-%EA%B5%AC%ED%95%98%EA%B8%B0
해당 포스트를 참고했다.
소스 코드
더보기
import java.util.HashMap;
import java.util.Map;
class Solution {
Map<Integer, Integer> divisorMap = new HashMap<>();
public int solution(int number, int limit, int power) {
int answer = 0;
divisorMap.put(1, 1);
for(int i = 1; i <= number; i++) {
int divisor = getDivisor(i);
if(divisor > limit)
answer += power;
else
answer += divisor;
}
return answer;
}
public int getDivisor(int number) {
int result = 0;
for(int i = 1; i * i <= number; i++) {
if(i * i == number) {
result++;
}
else if(number % i == 0) {
result += 2;
}
}
return result;
}
}
'Algorithm > Programmers' 카테고리의 다른 글
[프로그래머스][JAVA] 숫자 짝꿍 (0) | 2024.01.18 |
---|---|
[프로그래머스][문자열][JAVA] 옹알이(2) (0) | 2024.01.16 |
[프로그래머스][정렬][JAVA] 과일 장수 (0) | 2024.01.09 |
[프로그래머스][재귀][JAVA] 카드 뭉치 (0) | 2024.01.04 |
[프로그래머스][알고리즘][JAVA] 2016년 (0) | 2024.01.03 |
Comments