정보
분류 : 반복문
문제
풀이
- 풀이 1 (Scanner + println()) → 364ms
import java.util.*;
public class Main {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
for(int i = 1 ; i <= n ; i++) {
for(int j = n-i ; j >= 1 ; j--) {
System.out.print(" ");
}
for(int j = 1 ; j <= i ; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
- 풀이 2 (BufferedReader + BufferedWriter) → 128ms
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
// InputStream : 자바의 가장 기본이 되는 입력 스트림
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// OutputStreamWriter : 자바의 가장 기본이 되는 출력 스트림
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int n = Integer.parseInt(br.readLine());
for(int i = 1 ; i <= n ; i++) {
// 내부 for문-1
for(int j = n-i ; j >= 1 ; j--) {
bw.write(" ");
}
// 내부 for문-2
for(int j = 1 ; j <= i ; j++) {
bw.write("*");
}
bw.write("\n");
}
br.close();
bw.flush();
bw.close();
}
}
풀이 후기
별찍기 - 1이랑 같은 방식으로 풀어보았다.. 아래의 표가 다소 이해하기 어렵겠지만 i와 j를 저 숫자로 대입하면서 차례대로 풀면 답이 나온다👏 내부 for문-1은 빈칸을 표시하는 반복문이고, 내부 for문-2는 별 모양을 찍는 반복문이다. 내부 for문들을 감싸는 외부 for문은 행을 나타낸다. 내부 for문 두 개 모두 false면 밑에 있는 bw.write("\n")을 실행시키고 i가 1 증감시킨다. 이중 for문의 시스템을 잘 모르면 정답을 쫓아갈 수 없다는걸 알겠다🤯 기본 문법의 구조는 중요하다 메모..💡
n = 5 순서 : i, j 내부-1 : " "(빈칸) 내부-2 : "*"( 별 ) |
|||||
내부-1 (true) 1, 4 내부-2 - |
내부-1 (true) 1, 3 내부-2 - |
내부-1 (true) 1, 2 내부-2 - |
내부-1 (true) 1, 1 내부-2 - |
내부-1 (false) 1, 0 내부-2 (true) 1, 1 |
내부-1 (false) - 내부-2 (false) 1, 2 |
내부-1 (true) 2, 3 내부-2 - |
내부-1 (true) 2, 2 내부-2 - |
내부-1 (true) 2, 1 내부-2 - |
내부-1 (false) 2, 0 내부-2 (true) 2, 1 |
내부-1 (false) - 내부-2 (true) 2, 2 |
내부-1 (false) - 내부-2 (false) 2, 3 |
내부-1 (true) 3, 2 내부-2 - |
내부-1 (true) 3, 1 내부-2 - |
내부-1 (false) 3, 0 내부-2 (true) 3, 1 |
내부-1 (false) - 내부-2 (true) 3, 2 |
내부-1 (false) - 내부-2 (true) 3, 3 |
내부-1 (false) - 내부-2 (false) 3, 4 |
내부-1 (true) 4, 1 내부-2 - |
내부-1 (false) 4, 0 내부-2 (true) 4, 1 |
내부-1 (false) - 내부-2 (true) 4, 2 |
내부-1 (false) - 내부-2 (true) 4, 3 |
내부-1 (false) - 내부-2 (true) 4, 4 |
내부-1 (false) - 내부-2 (false) 4, 5 |
내부-1 (false) 5, 0 내부-2 (true) 5, 1 |
내부-1 (false) - 내부-2 (true) 5, 2 |
내부-1 (false) - 내부-2 (true) 5, 3 |
내부-1 (false) - 내부-2 (true) 5, 4 |
내부-1 (false) - 내부-2 (true) 5, 5 |
내부-1 (false) - 내부-2 (false) 5, 6 |
'💡문제 풀이 > 백준 - JAVA' 카테고리의 다른 글
A+B - 4 / 10951 (1) | 2023.11.17 |
---|---|
A+B - 5 / 10952 (1) | 2023.11.17 |
별 찍기 - 1 / 2438 (0) | 2023.11.17 |
A+B - 8 / 11022 (0) | 2023.11.16 |
A+B - 7 / 11021 (0) | 2023.11.16 |