728x90
입력을 보고 규칙을 찾아서 코딩하는 문제
나는 보기에 입력된 수의 줄만큼 홀수개로 별이 증가하면서 찍히고 다 찍히면 다시 역순으로 돌아가는 거로 생각하고 코딩했다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.StringTokenizer;
class Main{
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
int m=1;
for(int k=1;k<=n;k++) {
for(int i=0;i<n-k; i++) { //띄어쓰기 갯수
System.out.print(" ");
}
for(int j=0;j<m;j++) {
System.out.print("*");
}
m+=2;
for(int i=0;i<n-k; i++) { //띄어쓰기 갯수
System.out.print(" ");
}
System.out.println(" ");
}
m-=4;
for(int k=1;k<n;k++) {
for(int i=k;i>0; i--) { //띄어쓰기 갯수
System.out.print(" ");
}
for(int j=0;j<m;j++) {
System.out.print("*");
}
m-=2;
for(int i=k;i>0; i--) { //띄어쓰기 갯수
System.out.print(" ");
}
}
}
}
출력형식이 잘못됐다길래 찾아보니까 띄어쓰기로도 이렇게 나올 수 있다고 했다.
원인은 별을 찍은 다음에 굳이 띄어쓰기 출력 안 해줘도 되는데 내가 넣었다
그래서 뺐음 !
package algorithm;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.StringTokenizer;
class Main{
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
int m=1;
for(int k=1;k<=n;k++) {
for(int i=0;i<n-k; i++) { //띄어쓰기 갯수
System.out.print(" ");
}
for(int j=0;j<m;j++) {
System.out.print("*");
}
m+=2;
System.out.println(" ");
}
m-=4;
for(int k=1;k<n;k++) {
for(int i=k;i>0; i--) { //띄어쓰기 갯수
System.out.print(" ");
}
for(int j=0;j<m;j++) {
System.out.print("*");
}
m-=2;
System.out.println(" ");
}
}
}
728x90
'알고리즘 > 백준' 카테고리의 다른 글
4344번 문제 : 평균은 넘겠지 (0) | 2023.04.25 |
---|---|
10988번 문제 : 팰린드롬인지 확인하기 (0) | 2023.04.25 |
10811번 문제 : 바구니 뒤집기 (0) | 2023.04.15 |
10926번 문제 : ??! (0) | 2023.04.15 |
4949번 문제 : 균형잡힌 세상 (0) | 2023.04.15 |