2024. 3. 11. 12:10, ๐กAlgorithm
๋ฐ์ํ
๋ฌธ์
https://school.programmers.co.kr/learn/courses/30/lessons/12912
์ ๊ทผ
- ๋ฌด์์์ค์ ๋น์ฐํ ์
๋ ฅ๋๋ ๊ฐ a, b์ ๋ํด์ a < b๋ผ ์๊ฐํ๊ณ
๊ทธ๋ฅ a๋ถํฐ b๊น์ง for ๋ฌธ์ ๋๋ฆฌ๊ณ sum์ด๋ผ๋ ๋ณ์์ ๊ณ์ ๋ํด์ returnํ๋ฉด ๋๋ค๊ณ ์๊ฐํ๋ค.
// ๊ตฌ์ฒด์ ์ธ ๊ตฌ์, ์ค๋ต ์ฝ๋
class Solution {
fun solution(a: Int, b: Int): Long {
var sumInt = 0
for(i in a .. b){
var sumInt = sumInt + i
}
return sumInt.toLong()
}
}
- ๊ทธ๋ฐ๋ฐ ์์ ๊ฐ์ด ์ฝ๋๋ฅผ ์์ฑํ๋๋ ๊ฒฐ๊ณผ๊ฐ์ด ๋ชจ๋ 0์ด ๋์๋ค.
- ๋ฌธ์ ๋ฅผ ๋ค์๋ณด๋ a์ b์ค ํฐ ๊ฐ์ด ๋ญ์ง ๋ชจ๋ฅด๊ณ , ํด๋น ๊ฐ์ ๋ฐ๋ผ ๋ถ๊ธฐํด์ผ ํ๋ ๋ฌธ์ ์๋ค.
// ํ
์คํธ ์ผ์ด์ค 1, 3 ์คํจ
class Solution {
fun solution(a: Int, b: Int): Long {
var sumInt = 0
if(a < b){
for(i in a .. b){
var sumInt = sumInt + i
}
}
else if(a > b){
for(i in b .. a){
var sumInt = sumInt + i
}
} else sumInt = a
return sumInt.toLong()
}
}
- ๊ทธ๋์ ์์ ๊ฐ์ด ๊ตฌ์ฑํ๋๋ฐ ๋ ํ๋ ธ๋ค.
- ์ด์ ๋ for๋ฌธ ์์์ sumInt ์์ var์ ๊ณ์ ์ ์ธํ๊ธฐ ๋๋ฌธ์ด๋ค.
์์์ ์ ์ธํด๋๊ณ ์์์ ๋ค์ ๋ณ๊ฐ์ ์ง์ญ๋ณ์๋ฅผ ์ ์ธํ ์ ์ด๋ค. - for๋ฌธ ์์ ์๋ var๋ฅผ ์ญ์ ํด์ฃผ๋ ์ ์์ ์ผ๋ก ์๋๋์๋ค.
// ํ
์คํธ ์ผ์ด์ค 4~10 ์คํจ
class Solution {
fun solution(a: Int, b: Int): Long {
var sumInt = 0
if(a < b){
for(i in a .. b){
sumInt = sumInt + i
}
}
else if(a > b){
for(i in b .. a){
sumInt = sumInt + i
}
} else sumInt = a
return sumInt.toLong()
}
}
- ๊ทธ๋ฐ๋ฐ ์ด๋ฒ์ ํ ์คํธ์ผ์ด์ค์์ ์คํจ๊ฐ ๋ช ๊ฐ ๋ด๋ค.
- ์๋ฌด๋๋ ๋ฌธ์ ์์ ๋ฐํํ์ Long์ผ๋ก ์ค์ ํ ๊ฑฐ ๋ณด๋ฉด Int๋ฅผ ๋์ด์๋ ๋ฒ์์ ์๋ฅผ ์ถ๋ ฅํ๋ ๊ฒ ๊ฐ์๋ค.
sumInt๋ฅผ ๋ค ๊ณ์ฐํด๋๊ณ ๋ค๋ฆ๊ฒ toLong()์ ํด๋ดค์ ์๋ฏธ๊ฐ ์๋ ๊ฑฐ๋ค. - ๋ชจ๋ ์ ์ธํ์ ๋ฏธ๋ฆฌ Long์ผ๋ก ๋ณํํด๋ณด์๋๋ ๋ฌธ์ ๊ฐ ํด๊ฒฐ ๋๋ค. ์ฝ๋๋ ์ข ๋๋ฌ์๋ณด์ฌ์ ์์ ํ๋ค.
์ฑ๊ณต ์ฝ๋
class Solution {
fun solution(a: Int, b: Int): Long {
var sumLong: Long = 0 // Long์ผ๋ก ์ ์ธ
val start = if (a < b) a else b
val end = if (a < b) b else a
for (i in start..end) {
sumLong += i // Long์ผ๋ก ๋์
}
return sumLong
}
}
์ค๋ช
- ๋ชจ๋ ๊ฐ์ ์ ์ฅํ ๋ณ์ sumLong ๋ฅผ Long ํํ๋ก ์ ์ธํ๋ค. (: Long ์ผ๋ก ํ๊ธฐํ๋ ์ง, 0L๋ก ์ ์ธ)
- a์ b์ ํฌ๊ธฐ์ ๋ฐ๋ผ start์ end ๋ณ์์ ๊ฐ๊ฐ ์ง์ด ๋ฃ๋๋ค.
- start๋ถํฐ end๊น์ง for๋ฌธ์ ๋๋ฆฌ๋ฉด์ ๋ํ๋ค.
์ฌ๊ธฐ์ sumLong์ ๋ฏธ๋ฆฌ Long์ผ๋ก ์ ์ธํ์ผ๋ฏ๋ก Long์ผ๋ก ๊ณ์ ๋ํด์ง๋ค.
(๊น๋จน๊ณ ์์ธ์ฒ๋ฆฌ๋ฅผ ๋ชปํ๋๋ฐ, a์ b๊ฐ ๊ฐ์ ๊ฒฝ์ฐ๋ if~else ๋ฌธ์ผ๋ก ๋ถ๊ธฐํ๋ฉด ๋๋ค.) - ๊ฐ์ด ๋ชจ๋ ๋ํด์ง sumLong์ ๋ฆฌํดํ๋ค.
๋ค๋ฅธ ๋ฐฉ๋ฒ
class Solution {
fun solution(a: Int, b: Int) =
if (a < b) ((a..b).average() * (b - a + 1)).toLong()
else if (a > b) ((b..a).average() * (a - b + 1)).toLong()
else a.toLong()
}
class Solution {
fun solution(a: Int, b: Int): Long {
var answer = 0L
if (a == b){
return a.toLong()
}
var min = Integer.min(a,b)
var max = Integer.max(a,b)
for (i in min .. max){
answer += i
}
return answer
}
}
- average()๋ min, max()๋ฅผ ์ด์ฉํด์ ํธ์ ๋ถ๋ค์ด ์์๋ค.
๋ฐ์ํ
๐ฌ C O M M E N T