-
백준 2439번 별찍기 - 2Programming/BaekJoon 2021. 7. 15. 10:28
첫 번째 줄에는 공백이 4번, 별이 하나
두 번째 줄에는 공백이 3번, 별이 둘
...
이런 식으로 출력이 되어야 한다.
이중 for문을 이용하여 바깥 for문이 1 회전할 때마다
안쪽 for문은 N 회전하며 공백과 별을 출력할 것이다.
위와 같은 결과를 얻기 위해서는,
j가 N-i일 때까지는 공백을 출력하고 j가 N-i 이후부터 *을 출력해야 한다.
만약 5회전한다고 가정하면
첫번째 바깥 for문을 돌 때 안쪽 for문이 5번 돌면서
4회전은 공백을 출력하고 1회전은 *을 출력해야 한다.
두번째 바깥 for문을 돌 때 안쪽 for문이 5번 돌면서
3회전은 공백을 출력, 2회전은 *을 출력한다.
=> i가 1일 때 j가 5-1일 때까지는 공백 출력, 그 이후부터 * 출력
=> i가 2일 때 j가 5-2일 때까지는 공백 출력, 그 이후부터 * 출력
=> i가 3일 때 j가 5-3일 때까지는 공백 출력, 그 이후부터 * 출력
.....
이런 규칙이므로 삼항연산자를 이용하여
다음과 같이 풀어보았다.
import java.io.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(br.readLine()); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); for(int i = 1; i <= N; i++) { for(int j = 1; j <= N; j++) { String s = (j <= N-i) ? " " : "*"; bw.write(s); } bw.write("\n"); } bw.flush(); bw.close(); br.close(); } }
'Programming > BaekJoon' 카테고리의 다른 글
백준 10952번 A + B - 5 (0) 2021.07.15 백준 10871번 X보다 작은 수 (0) 2021.07.15 백준 2438번 별찍기-1 (0) 2021.07.15 백준 11022번 A+B -8 (0) 2021.07.15 백준 11021번 A + B - 7 (0) 2021.07.15