본문 바로가기
Algorithm/Baekjoon

[백준] 2438번 : 별 찍기 - 1 - Java

by unknownomad 2022. 2. 22.

https://www.acmicpc.net/problem/2438

 

2438번: 별 찍기 - 1

첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제

www.acmicpc.net



알고리즘

for (int i = 1; i <= N; i++) { //행 개수
    for(int j = 1; j <= i; j++) { //각 행마다의 별 개수
        print("*"); //각 행의 별 출력, println() 절대 안 됨!
    }
    print("\n"); //개행
}

구현 방법

입력

  • Scanner
  • BufferedReader
    * 자료형 타입 주의!
    br.readLine(): 문자열로 데이터 읽음 ➡ int형으로 쓰려면 Integer.parseInt()로 형변환 필요

출력

  • System.out.println()
  • BufferedWriter
    * BufferedWriter.write(): 단독으로 int형 값만 넣으면 아스키 코드값으로 인식되기에 다른 문자가 출력됨
    ➡ 반드시 문자열과 int형을 함께 넣어야 int값 제대로 출력
  • StringBuilder

풀이

1. Scanner

import java.util.Scanner;
 
public class Main {
    public static void main(String[] args) {
    
        Scanner in = new Scanner(System.in);
 
        int N = in.nextInt();
        in.close();
 
        for (int i = 1; i <= N; i++) {
            for (int j = 1; j <= i; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

2. BufferedReader

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
 
public class Main {
    public static void main(String[] args) throws IOException {
    
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int N = Integer.parseInt(br.readLine());
        br.close();
 
        for (int i = 1; i <= N; i++) {
            for (int j = 1; j <= i; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

 

3. BufferedReader + BufferedWriter

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
import java.io.IOException;
 
public class Main {
    public static void main(String[] args) throws IOException {
    
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        
        int N = Integer.parseInt(br.readLine());
        br.close();
 
        for (int i = 1; i <= N; i++) {
            for (int j = 1; j <= i; j++) {
                bw.write("*");
            }
            bw.newLine(); //개행
        }
        bw.flush();
        bw.close();
    }
}

 

4. BufferedReader + StringBuilder

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
 
public class Main {
    public static void main(String[] args) throws IOException {
    
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int N = Integer.parseInt(br.readLine());
        br.close();
 
        StringBuilder sb = new StringBuilder();
 
        for (int i = 1; i <= N; i++) {
            for (int j = 1; j <= i; j++) {
                sb.append("*");
            }
            sb.append("\n");
        }
        System.out.print(sb);
    }
}

성능

  • BufferedReader > Scanner
  • BufferedWriter / StringBuilder > System.out.println()

 


출처 : https://st-lab.tistory.com/35

댓글