https://www.acmicpc.net/problem/2903
풀이
더보기
가만히 문제를 보면 쉬운데.. 변 하나만 보면
1번 -> 점 두개 사이에 점 하나를 콕 찍어야 한다.
2번 -> 점 세 개 사이에 2개를 콕
3번 -> 점 5개 사이에 4개를 콕
4번 -> 9개 사이에 8개 콕.
즉 연속되었지만 연결되지 않는 점 n개는 변 n-1을 만들고 변 위에 점을 찍기 때문에 최종적으로 찍히는 점음 n + n -1 이 된다.
그리고 이것이 끝이 아니라 수직인 변에도 동일하게 찍히기 때문에 그 점이 n + n - 1만큼 반복된다는 것을 알 수 있다
즉 (n + n - 1)^2 을 반복한다.
따라서 n을 전역변수로 두고 반복 횟수마다 n = n + n - 1을 하고, 반복이 끝나면 이를 제곱하면 된다.
import kotlin.math.pow
fun main(args: Array<String>) {
question2903()
}
fun question2903() {
var dot = 2
var count = readLine()!!.toInt()
for(i in 1 .. count) {
dot = dot + dot - 1
}
println((dot.toDouble().pow(2)).toInt())
}
반응형
'스터디(beakjoon)' 카테고리의 다른 글
Kotlin] 백준 1193번 문제풀이 (0) | 2023.06.19 |
---|---|
Kotlin] 백준 2292번 문제풀이 (0) | 2023.06.16 |
Kotlin] 백준 2720번 문제풀이 (0) | 2023.06.15 |
Kotlin] 백준 11005번 문제풀이 (0) | 2023.06.15 |
Kotlin] 백준 2745번 문제풀이 (0) | 2023.06.14 |