이번에는 for문을 사용하여 *을 찍어내는 문제이다.
1학년 때 과제를 받았을 때는 하루를 고민해도 혼자 풀 수 없었는데
이제는 십분만 고민해봐도 답이 나오는 걸 보니 일학년 때 공부를 안한게 티가 났다 ㅎㅎ;
일단 bufferedWrite를 사용할 것이고,
이중 for문을 돌릴 것이다.
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class qn2438{
public static void main(String[] args) throws IOException{
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); //콘솔에서 입력받을 경우
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int n = Integer.parseInt(bf.readLine().trim());
for(int i=1;i<=n;i++){
for(int j=1;j<=i;j++){
bw.write("*");
}
bw.write("\n");
}
bw.flush();
bf.close();
bw.close();
}
}
몇 줄 출력할 것인지 n을 입력받고
하나의 for문은 별찍기용, 하나의 for문은 \n용으로 사용할 것이다.
일단 별을 찍고 한줄띄기를 할 것인데
\n을 출력할 for문 안에 *을 출력하는for문을 만들어줘야 그 순서가 이루어진다.
이때 *을 출력해주는 for문에는 \n을 적지않는다.
*를 출력해주는 for문은 int i(즉, \n을 수행해주는 i)의 수만큼 *을 그려줄 것이다.
for(int j =1;j<=i;j++)대로면
i=1 > *
\n
i=2 > j는 1부터 2까지 반복 > **
\n
i=3 > j는 1부터 3까지 반복 > ***
\n
이렇게 반복될 것이다.
그 다음 문제는 오른쪽 정렬로 별찍기 였고 여기서는 for문을 3개나 썼다.
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class qn2439{
public static void main(String[] args) throws IOException{
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); //콘솔에서 입력받을 경우
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int n = Integer.parseInt(bf.readLine().trim());
for(int i=1;i<=n;i++){
for(int j=1;j<=n-i;j++){
bw.write(" ");
}
for(int j=1;j<=i;j++){
bw.write("*");
}
bw.write("\n");
}
bw.flush();
bf.close();
bw.close();
}
}
*, \n, " "을 각자 찍어내는 for문을 만들어주었고
*을 찍는for문과 \n을 찍는 for문은 동일하지만
" " 즉 공백을 찍어내는 for문은 조금 다른데
오른쪽 정렬된 *을 보고싶다면 앞쪽을 공백으로 채우면 된다는 생각에
*을 찍을 공간만 빼고 모두 공백으로 채워주는 for문을 작성하였다.
n=5,i=1> *
n=5,i=2> **
i가 커질수록 공백이 차지하는 부분은 작아져야하기에 n-i번 반복으로 설정해두었다.
그렇게 되면
n=5,i=1> * >>공백은 4
n=5,i=2> ** >> 공백은 3
끝~!
'study > baekJun' 카테고리의 다른 글
[백준/자바/java/while]백준 1110 더하기 사이클 (0) | 2020.04.09 |
---|---|
[백준/JAVA/for문]백준10871 X보다 작은 수 (0) | 2020.04.08 |
[백준/JAVA/자바입출력]백준11021, 백준11022 (0) | 2020.04.06 |
[백준/JAVA/for문/배열]백준2741,2742 N찍기 그리고 기찍N (0) | 2020.04.06 |
[백준/JAVA/for문]백준8393 합 (0) | 2020.03.31 |