728x90
문제
https://www.acmicpc.net/problem/2444
숫자 N을 입력받은 뒤, 2 x N-1 줄까지 주어진 형식대로 별을 출력하는 문제이다.
입력
5
출력
*
***
*****
*******
*********
*******
*****
***
*
------------------------------------------------------------------------------------------------------------------
풀이
별 찍기 하면서 4가지 경우만 풀어봐서 그림과 같이 크게는 2등분, 전체적으로는 4등분해서 풀었다. 처음부터 맞추진 않고 틀린 부분을 찾으면서 바꾸는 노가다로 풀어서 코드가 난잡하게 보일 수도 있을 것 같다.
파란색 선을 기준으로 크게 for문을 2개 만들었다.
2개의 for문 안에 3개의 for문을 사용하여 빨간색 선 기준 왼쪽과 오른쪽을 만들었다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int i,j,k,l;
sc.close();
for(i=0;i<n;i++) { // 파란색 선 위쪽
for(j=i+1;j<n;j++) {
System.out.print(" ");
}
for(k=i;k>=0;k--) { // 빨간색 선 왼쪽
System.out.print("*");
}
for(l=i;l>0;l--) { // 빨간색 선 오른쪽
System.out.print("*");
}
System.out.println();
}
for(i=1;i<n;i++) { // 파란색 선 아래쪽
for(j=i;j>0;j--) {
System.out.print(" ");
}
for(k=i;k<n;k++) { // 빨간색 선 왼쪽
System.out.print("*");
}
for(l=i+1;l<n;l++) { // 빨간색 선 오른쪽
System.out.print("*");
}
System.out.println();
}
}
}
728x90
'문제 풀이' 카테고리의 다른 글
[백준] 1157번: 단어 공부 - JAVA (자바) (0) | 2023.08.09 |
---|---|
[백준] 5622번: 다이얼 - JAVA (자바) (0) | 2023.08.06 |
[백준] 11718번: 그대로 출력하기 - JAVA (자바) (0) | 2023.08.06 |
[백준] 2908번: 상수 - JAVA (자바) (0) | 2023.06.29 |
[백준] 1152번: 단어의 개수 - JAVA (자바) (0) | 2023.06.28 |