ToBe끝판왕

[ 알고리즘 ] 백준 2741번 문제 - 자바( JAVA ) 본문

■ 알고리즘/백준 JAVA

[ 알고리즘 ] 백준 2741번 문제 - 자바( JAVA )

업그레이드중 2022. 5. 25. 15:52
반응형

주의사항

※ 백준에서 정해진 출력 형식을 출력해야 한다.
※ 백준 알고리즘에서는 클래스명을 Main으로 해주어야 한다.

 


 

백준 2741번 문제

 

백준 알고리즘의 단계별 문제 풀기

3단계 < 반복문 >

 

 

 해당 문제 링

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

 

2741번: N 찍기

자연수 N이 주어졌을 때, 1부터 N까지 한 줄에 하나씩 출력하는 프로그램을 작성하시오.

www.acmicpc.net

 


 

코딩 하기

 

1) Scanner 사용

import java.util.Scanner;

public class Main {

	public static void main( String[] args ) {
    
    	Scanner sc = new Scanner( System.in );
        
        int N = sc.nextInt();
        sc.close();
        
        int i=1;
        
        while( i<= N ) {
        	System.out.println( i );
            i++;
        }
    }
}

 

 

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();
        
        int i=1;
        while( i<=N ) {
        	System.out.println( i );
            i++;
        }
    }
}

 

 

3) 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();
        
        int i=1;
        StringBuilder sb = new StringBuilder();
        
        while( i<=N ) {
        	sb.append( i + "\n" );
            i++;
        }
        
        System.out.println( sb );
    }
}

 

 

 

문제 해결

 

1) Scanner 사용

while 반복문 부분은 for( int i=1; i<=N; i++ ) 로 해주어도 결과는 같게 나온다.

 while( i<= N ) {
        	System.out.println( i );
            i++;
        }

 

 

Scanner / BufferedReader / StringBuilder로 각자 출력 시간 차이이다.

확실히 System.out.println( ) 메서드로 하나하나 호출하는 것보단 StringBuilder로 한번에 모아서

append 메서드를 통해 하나의 문자열로 만들어 출력하는것이 빠르다는것을 알 수 있다.

 

 

 

 

반응형
Comments