컴공댕이 공부일지
[java] 백준 ( 13015 별 찍기-23 ) 본문
728x90
13015 별찍기
실버 5
https://www.acmicpc.net/problem/13015
13015번: 별 찍기 - 23
예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.
www.acmicpc.net
정답코드
import java.util.Scanner;
public class EC3_1 {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int n=s.nextInt();
for(int i=0; i<(2*n)-1; i++) {
if(i==0 || i==((2*n)-2)) { //시작, 마지막 줄
for(int j=0; j<n; j++) {
System.out.printf("*");
}
for(int j=0; j<(2*n)-3; j++) {
System.out.printf(" ");
}
for(int j=0; j<n; j++) {
System.out.printf("*");
}
} else if(i==n-1) { //가운데 줄
for(int j=0; j<n-1; j++) {
System.out.printf(" ");
}
for(int j=0; j<2; j++) {
System.out.printf("*");
for(int k=0; k<(n-2); k++) {
System.out.printf(" ");
}
}
System.out.printf("*");
} else if (i<n-1) { //시작~가운데 사이
int d = Math.abs(n-1-i);
for(int j=0; j<i; j++) {
System.out.printf(" ");
}
System.out.printf("*");
for(int j=0; j<(n-2); j++) {
System.out.printf(" ");
}
System.out.printf("*");
for(int j=1; j<=(d*2)-1 ; j++){
System.out.print(" ");
}
System.out.printf("*");
for(int j=0; j<(n-2); j++) {
System.out.printf(" ");
}
System.out.printf("*");
} else { //가운데~끝 사이
int d = Math.abs(n-1-i);
for(int j=0; j<n-1-d; j++) {
System.out.printf(" ");
}
System.out.printf("*");
for(int j=0; j<(n-2); j++) {
System.out.printf(" ");
}
System.out.printf("*");
for(int j=1; j<=(d*2)-1 ; j++){
System.out.printf(" ");
}
System.out.printf("*");
for(int j=0; j<(n-2); j++) {
System.out.printf(" ");
}
System.out.printf("*");
}
System.out.printf("\n");
}
}
}
별찍기 재밌엉.... 가로 세로로 나누고 처음 중간 끝 등등등 구간 별로 쇽쇽 나눠서 생각하다보면 금방 풀린다!
728x90
'문제 풀이 > 코딩 문제 풀이 모음' 카테고리의 다른 글
[java] 백준 ( 2477 참외밭 ) 💥💦 (0) | 2023.04.05 |
---|---|
[java] 백준 ( 13458 시험 감독 ) (0) | 2023.03.30 |
[java] 백준 ( 10818 최소, 최대 / 1924 2007년) (1) | 2023.03.23 |
[c언어, java] 백준 (2675 문자열 반복 / 1002 터렛) (0) | 2023.03.21 |
[c언어] 백준 (1193 분수찾기) (0) | 2023.03.20 |
Comments