728x90
https://www.acmicpc.net/problem/2442
문제
첫째 줄에는 별 1개, 둘째 줄에는 별 3개, ..., N번째 줄에는 별 2×N-1개를 찍는 문제
별은 가운데를 기준으로 대칭이어야 한다.
입력
첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.
출력
첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다.
예제 입력1
5
예제 출력1
*
***
*****
*******
*********
해설
예제 출력을 보자. 행 = i, 열 = j, 입력 = n이라 하자.
0행에서는 4열에만 *이 있고, 1행에는 3~5열, . . . n행에는 0~8열에 *이 있다.
규칙을 찾아보면 n - i - 1 > j일 때 빈 칸을 먼저 입력한 후 n + i 보다 작은 값에 *을 넣으면 된다.
0행: 5 - 0 - 1 = 4, 5 + 0 = 5 -> 4보다 열이 작을 시 빈칸, 그 외 5보다 작은 열 *
1행: 5 - 1- 1 = 3, 5 + 1 = 6 -> 3보다 열이 작을 시 빈칸, 그 외 6보다 작은 열 *
.
.
4행: 5 - 4 - 1 = 0, 5 + 4 = 9 -> 0보다 열이 작을 시 빈칸, 그 외 9보다 작은 열 *
이대로 별을 찍어보면 예제 출력과 같은 결과가 나온다.
소스 코드
import java.lang.StringBuilder
fun main() {
val input = readLine()!!.toInt()
val sb = StringBuilder()
for(i in 0 until input){
for(j in 0 until input * 2 - 1){
when {
j < input - i - 1 -> sb.append(" ")
j < input + i -> sb.append("*")
}
}
sb.append("\n")
}
println(sb.toString())
}
728x90
'PS(Problem Solving) > BOJ' 카테고리의 다른 글
[백준/BOJ] 2444번: 별 찍기 - 7 (0) | 2021.11.19 |
---|---|
[백준/BOJ] 2443번: 별 찍기 - 6 (0) | 2021.11.18 |
[백준/BOJ] 2441번: 별 찍기 - 4 (0) | 2021.11.16 |
[백준/BOJ] 2440번: 별 찍기 - 3 (0) | 2021.11.16 |
[백준/BOJ] 2355번: 시그마 (0) | 2021.11.15 |
댓글