#12947
๐ Question ?
https://school.programmers.co.kr/learn/courses/30/lessons/12947
class Solution {
fun solution(x: Int): Boolean {
var answer = true
return answer
}
}
๐งฉ Thought Process
- ์ ๋ ฅ๊ฐ x๋ฅผ ๋ฌธ์์ด-> CharArray๋ก ๋ฐ๊พธ์ด์ค๋ค.
- size ํ๋กํผํฐ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฐ์ด์ ํฌ๊ธฐ๋ฅผ ์ฐพ์์ผ๋ก์จ ์ ๋ ฅ๋ ๊ฐ x์ ์๋ฆฟ์๋ฅผ ์ฐพ๋๋ค.
- ๋ชจ๋ ์๋ฆฟ์์ ๊ฐ์ for๋ฌธ์ ์ด์ฉํ์ฌ ๋ํ๋ค. ์ด๋ CharArray์ ๊ฐ๋ค์ ์ ์ํ์ผ๋ก ๋ณํํด ์ฃผ์ด์ผ ํ๋ค.
- ์ ๋ ฅํ x๋ฅผ ์๋ฆฟ์์ ํฉ์ผ๋ก ๋๋์์ ๋ ๋๋จธ์ง๊ฐ 0์ด๋ฉด ์ฐธ ์๋๋ฉด ๊ฑฐ์ง
๐ Answer
ํ์ด #1
class Solution {
fun solution(x: Int): Boolean {
var answer = true
var sum = 0
var xCharArray = x.toString().toCharArray()
var arraySize = xCharArray.size
var xIntArray = IntArray(arraySize)
for (i in 0 until arraySize) {
xIntArray[i] = xCharArray[i].digitToInt()
sum += xIntArray[i]
}
if (x % sum == 0) {
answer = true
} else {
answer = false
}
return answer
}
}
ํฌ์ผ ๋ฐฉ๊ธ ์ ์ ํ์๋ ๋ฌธ์ ์ ์ง๋์ฃผ์ ๋ฐฐ์ด ๊ฐ๋ ์ ์ด์ฉํด์ ํ์๋ค. ๊ทธ๋ฐ๋ฐ ํ์ด๊ฐ ๋๋ฌด ๊ธธ๋ค. ๋ถ๋ช ๋ค๋ฅธ ํ์ด๋ฅผ ์ฐพ์๋ณด๋ฉด ์งง๊ณ ๊ฐ๊ฒฐํ๊ณ ์ดํดํ๊ธฐ ์ฝ๊ฒ ๋ง๋ ์ฝ๋๊ฐ ์๊ฒ ์ง?
ํ์ด #2
class Solution {
fun solution(x: Int): Boolean {
var sum = 0
var tempX = x
while (tempX != 0) {
sum += tempX % 10
tempX /= 10
}
return (x % sum == 0)
}
}
๋๋ ์์ง ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ฅผ ํ๋ฉด์ while๋ฌธ์ ์ ์ ์ผ๋๋ฐ ์ ๊ธฐํ ํ์ด์ธ ๊ฒ ๊ฐ๋ค. ์ค ์ด๋ ๊ฒ๋ ์๊ฐํ ์ ์๊ตฌ๋จ
ํ์ด #3
class Solution {
fun solution(x: Int): Boolean {
var answer = true
var sum = 0
x.toString().map {
sum += (it.toInt() - '0'.toInt())
}
return x % sum == 0
}
}
** ์ดํด๊ฐ ์๋๋น.. ๋ด์ผ ์์ ๊ณต๋ถํด์ผ์ง
ํ์ด #4
class Solution {
fun solution(x: Int): Boolean {
return x % x.toString().fold(0) { acc, c -> acc + c.toInt() - 48
} == 0
}
}
์ฌ๊ธฐ๋ ๊ณต๋ถ!
๐ Result
๐ Comment
์ ์ ๋ด๊ฐ ๊ณต๋ถํ๋ ๊ฒ ์์ฃผ๋ก๋ฐ์ ์๊ฐ์ ๋ชปํด์ ๊ณ์ for๋ฌธ/if๋ฌธ๋ง ์ฌ์ฉํด์ ๋ฌธ์ ๋ฅผ ํ์ดํ๋ ๊ฒ ๊ฐ๋ค.
๋ค์ํ ํ์ด๋ฅผ ๋ณด๋ฉด์ ๋ด๊ฐ ์๊ฐํ ์ ์๋ ๋ฒ์๋ฅผ ๋ํ์ผ๊ฒ ๋ค๋ ์๊ฐ์ด ๋ค์๋ค.