Skip to content

Commit 0203662

Browse files
committed
[level 1] Title: 약수의 개수와 덧셈, Time: 88.28 ms, Memory: 20.3 MB -BaekjoonHub
1 parent a090e3f commit 0203662

2 files changed

Lines changed: 149 additions & 0 deletions

File tree

Lines changed: 141 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,141 @@
1+
# [level 1] 약수의 개수와 덧셈 - 77884
2+
3+
[문제 링크](https://school.programmers.co.kr/learn/courses/30/lessons/77884)
4+
5+
### 성능 요약
6+
7+
메모리: 20.3 MB, 시간: 88.28 ms
8+
9+
### 구분
10+
11+
코딩테스트 연습 > 월간 코드 챌린지 시즌2
12+
13+
### 채점결과
14+
15+
정확성: 100.0<br/>합계: 100.0 / 100.0
16+
17+
### 제출 일자
18+
19+
2026년 08월 10일 16:58:09
20+
21+
### 문제 설명
22+
23+
<p>두 정수 <code>left</code>와 <code>right</code>가 매개변수로 주어집니다. <code>left</code>부터 <code>right</code>까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요.</p>
24+
25+
<hr>
26+
27+
<h5>제한사항</h5>
28+
29+
<ul>
30+
<li>1 ≤ <code>left</code> ≤ <code>right</code> ≤ 1,000</li>
31+
</ul>
32+
33+
<hr>
34+
35+
<h5>입출력 예</h5>
36+
<table class="table">
37+
<thead><tr>
38+
<th>left</th>
39+
<th>right</th>
40+
<th>result</th>
41+
</tr>
42+
</thead>
43+
<tbody><tr>
44+
<td>13</td>
45+
<td>17</td>
46+
<td>43</td>
47+
</tr>
48+
<tr>
49+
<td>24</td>
50+
<td>27</td>
51+
<td>52</td>
52+
</tr>
53+
</tbody>
54+
</table>
55+
<hr>
56+
57+
<h5>입출력 예 설명</h5>
58+
59+
<p><strong>입출력 예 #1</strong></p>
60+
61+
<ul>
62+
<li>다음 표는 13부터 17까지의 수들의 약수를 모두 나타낸 것입니다.</li>
63+
</ul>
64+
<table class="table">
65+
<thead><tr>
66+
<th>수</th>
67+
<th>약수</th>
68+
<th>약수의 개수</th>
69+
</tr>
70+
</thead>
71+
<tbody><tr>
72+
<td>13</td>
73+
<td>1, 13</td>
74+
<td>2</td>
75+
</tr>
76+
<tr>
77+
<td>14</td>
78+
<td>1, 2, 7, 14</td>
79+
<td>4</td>
80+
</tr>
81+
<tr>
82+
<td>15</td>
83+
<td>1, 3, 5, 15</td>
84+
<td>4</td>
85+
</tr>
86+
<tr>
87+
<td>16</td>
88+
<td>1, 2, 4, 8, 16</td>
89+
<td>5</td>
90+
</tr>
91+
<tr>
92+
<td>17</td>
93+
<td>1, 17</td>
94+
<td>2</td>
95+
</tr>
96+
</tbody>
97+
</table>
98+
<ul>
99+
<li>따라서, 13 + 14 + 15 - 16 + 17 = 43을 return 해야 합니다.</li>
100+
</ul>
101+
102+
<p><strong>입출력 예 #2</strong></p>
103+
104+
<ul>
105+
<li>다음 표는 24부터 27까지의 수들의 약수를 모두 나타낸 것입니다.</li>
106+
</ul>
107+
<table class="table">
108+
<thead><tr>
109+
<th>수</th>
110+
<th>약수</th>
111+
<th>약수의 개수</th>
112+
</tr>
113+
</thead>
114+
<tbody><tr>
115+
<td>24</td>
116+
<td>1, 2, 3, 4, 6, 8, 12, 24</td>
117+
<td>8</td>
118+
</tr>
119+
<tr>
120+
<td>25</td>
121+
<td>1, 5, 25</td>
122+
<td>3</td>
123+
</tr>
124+
<tr>
125+
<td>26</td>
126+
<td>1, 2, 13, 26</td>
127+
<td>4</td>
128+
</tr>
129+
<tr>
130+
<td>27</td>
131+
<td>1, 3, 9, 27</td>
132+
<td>4</td>
133+
</tr>
134+
</tbody>
135+
</table>
136+
<ul>
137+
<li>따라서, 24 - 25 + 26 + 27 = 52를 return 해야 합니다.</li>
138+
</ul>
139+
140+
141+
> 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import Foundation
2+
3+
func solution(_ left:Int, _ right:Int) -> Int {
4+
return (left...right).reduce(0) { sum, num in
5+
let count = (1...num).count(where: { num % $0 == 0 })
6+
return count % 2 == 0 ? sum + num : sum - num
7+
}
8+
}

0 commit comments

Comments
 (0)