별 찍기 - 11 성공
시간 제한메모리 제한제출정답맞은 사람정답 비율
1 초 | 256 MB | 23961 | 9455 | 6568 | 37.446% |
문제
예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.
입력
첫째 줄에 N이 주어진다. N은 항상 3×2k 수이다. (3, 6, 12, 24, 48, ...) (0 ≤ k ≤ 10, k는 정수)
출력
첫째 줄부터 N번째 줄까지 별을 출력한다.
예제 입력 1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
import java.io.BufferedReader
import java.io.BufferedWriter
import java.io.InputStreamReader
import java.io.OutputStreamWriter
import kotlin.math.log2
import kotlin.math.pow
val br = BufferedReader(InputStreamReader(System.`in`))
val list = mutableListOf<String>(" * "," * * ","***** ")
fun main()=with(br){
val bw = BufferedWriter(OutputStreamWriter(System.out))
val num = readLine()!!.toInt()
val k = log2(num.toDouble()/3).toInt()
//println(k)
for(i in 0 until k){
val a = ((2.0).pow(i)).toInt()
//println("a: $a")
gogo(a)
}
for(i in 0 until list.size){
bw.write("${list[i]}\n")
}
bw.flush()
bw.close()
}
fun gogo(a:Int){
var str = ""
var origin_length = list.size
for(i in 0 until list.size) {
list.add(list[i] + list[i])
}
for(i in 0 until a){
str += " "
}
for(i in 0 until origin_length){
list[i]=(str+list[i]+str)
}
}
|
cs |
이분글을 보고 코드를 짰습니다.
https://donghak-dev.tistory.com/68
'알고리즘 공부 > 별찍기' 카테고리의 다른 글
해결 툴 (0) | 2021.08.01 |
---|---|
백준 2447번 with Kotlin (0) | 2021.08.01 |