Skip to content

Commit 9337477

Browse files
committed
[level 1] Title: 기사단원의 무기, Time: 80.44 ms, Memory: 93.8 MB -BaekjoonHub
1 parent df3bb4b commit 9337477

File tree

2 files changed

+43
-14
lines changed

2 files changed

+43
-14
lines changed

프로그래머스/1/136798. 기사단원의 무기/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
### 성능 요약
66

7-
메모리: 95 MB, 시간: 10.96 ms
7+
메모리: 93.8 MB, 시간: 80.44 ms
88

99
### 구분
1010

@@ -16,7 +16,7 @@
1616

1717
### 제출 일자
1818

19-
2025년 01월 06일 18:56:35
19+
2025년 08월 23일 09:34:19
2020

2121
### 문제 설명
2222

Lines changed: 41 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,51 @@
11
import java.util.*;
22
class Solution {
3-
public int solution(int number, int limit, int power) {
4-
int[] count=new int[number+1];
3+
public int solution(int number, int limit, int power) {
4+
// 15 -> 약수:1,3,5,15 -> 공격력 4짜리 무기 구매(단, 제한 존재)
5+
// 공격력 1당 1Kg 철 필요
6+
7+
// number: 기사 단원 수
8+
// limit: 공격력 제한 수치
9+
// power: 제한 수치를 초과한 기사가 사용할 공격력
10+
// 필요한 철의 무게 return
11+
12+
// 1. 1부터 number까지 약수의 갯수를 구함
13+
ArrayList<Integer> list = new ArrayList<>();
514
for(int i=1;i<=number;i++){
6-
for(int j=1;j<=number/i;j++){
7-
count[i*j]++;
15+
// 1. 1부터 number까지 약수의 갯수를 구함
16+
int count = getCount(i);
17+
// 2. 약수의 갯수가 limit을 초과하는지 확인
18+
if(count > limit){
19+
// 3. 만약에 limit보다 크다면 power를 리스트에 등록
20+
list.add(power);
21+
continue;
822
}
23+
list.add(count);
924
}
10-
int sum=0;
11-
for(int n:count){
12-
if(n>limit){
13-
sum+=power;
25+
// 4. list의 합 return
26+
int sum = list.stream()
27+
.mapToInt(Integer::intValue)
28+
.sum();
29+
return sum;
30+
}
31+
32+
int getCount(int number){
33+
if(number == 1){
34+
return 1;
35+
}
36+
37+
int sqrt = (int) Math.sqrt(number);
38+
int count = 0;
39+
40+
for(int i=1;i <= sqrt;i++){
41+
if(i*i == number){
42+
count++;
1443
}
15-
else{
16-
sum+=n;
44+
else if(number % i == 0){
45+
count+=2;
1746
}
1847
}
19-
return sum;
20-
48+
49+
return count;
2150
}
2251
}

0 commit comments

Comments
 (0)