알고리즘 공부/별찍기

백준 별찍기11 2448번 with Kotlin # log #pow

_우지 2021. 7. 20. 17:51

별 찍기 - 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

 

[알고리즘][Python] 백준 2448 별 찍기 문제 풀이

문제 출처 : www.acmicpc.net/problem/2448 2448번: 별 찍기 - 11 첫째 줄에 N이 주어진다. N은 항상 3×2k 수이다. (3, 6, 12, 24, 48, ...) (0 ≤ k ≤ 10, k는 정수) www.acmicpc.net 문제 해석 : 예시로 제..

donghak-dev.tistory.com

 

[알고리즘][Python] 백준 2448 별 찍기 문제 풀이

문제 출처 : www.acmicpc.net/problem/2448 2448번: 별 찍기 - 11 첫째 줄에 N이 주어진다. N은 항상 3×2k 수이다. (3, 6, 12, 24, 48, ...) (0 ≤ k ≤ 10, k는 정수) www.acmicpc.net 문제 해석 : 예시로 제..

donghak-dev.tistory.com