알고리즘/백준
2444번 문제 : 별 찍기 - 7
son_i
2023. 4. 24. 21:06
728x90
2444번: 별 찍기 - 7
첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다.
www.acmicpc.net
입력을 보고 규칙을 찾아서 코딩하는 문제
나는 보기에 입력된 수의 줄만큼 홀수개로 별이 증가하면서 찍히고 다 찍히면 다시 역순으로 돌아가는 거로 생각하고 코딩했다.
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