728x90
https://www.acmicpc.net/problem/2444
문제
예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.
입력
첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.
출력
첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.
예제 입력1
5
예제 출력1
*
***
*****
*******
*********
*******
*****
***
*
해설
2442번: 별 찍기 - 5, 2443번: 별 찍기 - 6 두 문제를 풀었다면 충분히 풀 수 있는 문제이다.
우선 4행을 기준으로 0, 1, 2, 3, 4행은 윗 삼각형, 5, 6, 7, 8행은 아래 삼각형으로 구분하였다.
윗 삼각형을 만드는 방법은 2442번에서 이미 했었다. 열(j)가 n - i - 1보다 작을 때 빈칸을, 그 외 n+ i보다 작을 때 *을 넣었다.
이제 아래 삼각형을 보겠다.
2443번과 같지만 행이 0부터 시작이 아닌 5행부터 시작이다.
따라서 j가 i - n보다 작거나 같을 때 빈칸을 넣고, n * 2 - 2 - (i - n)일 때 별을 넣도록 하였다.
소스 코드
import java.lang.StringBuilder
fun main() {
val input = readLine()!!.toInt()
val sb = StringBuilder()
for(i in 0 until input * 2 - 1){
for(j in 0 until input * 2 - 1){
if(i < input) {
when {
j < input - i - 1 -> sb.append(" ")
j < input + i -> sb.append("*")
}
}
else {
when {
j <= i - input -> sb.append(" ")
j < input * 2 - 2 - (i - input) -> sb.append("*")
}
}
}
sb.append("\n")
}
println(sb.toString())
}
728x90
'PS(Problem Solving) > BOJ' 카테고리의 다른 글
[백준/BOJ] 2446번: 별 찍기 - 9 (0) | 2021.11.20 |
---|---|
[백준/BOJ] 2445번: 별 찍기 - 8 (0) | 2021.11.20 |
[백준/BOJ] 2443번: 별 찍기 - 6 (0) | 2021.11.18 |
[백준/BOJ] 2442번: 별 찍기 - 5 (0) | 2021.11.17 |
[백준/BOJ] 2441번: 별 찍기 - 4 (0) | 2021.11.16 |
댓글