Java & Spring

자바 알고리즘 입출력 받기

닥치고개돌 2021. 8. 5. 21:28
728x90

알고리즘의 가장 기본 입출력 알아보자

 

Scanner, Println등도 모르면서 알고리즘을 무작정 풀 수는 없는 노릇이고, 시간제한이 있는 문제의 경우에는 입출력에 소비되는 시간을 최소화해야함.

 

 

자바의 출력

  1. System.out.println()
  • Java에서 가장 일반적인 출력, 줄바꿈이 된다
  1. System.out.print(...)
  • println과 달리 줄바꿈이 안됨.
  1. System.out.printf(...)
  • C언어의 printf와 흡사하게 사용

 

자바의 입력

Scanner (java.util.Scanner)

  • next자료형을 이용해서 입력을 받을 수 있다.
  • hasNext자료형을 이용해서 입력받을 수 있는 자료형이 있는지 구할 수 있다.
  • Iterator를 Interface로 상속받기 때문에, Iterator에서 사용하는 메소드들을 사용할 수 있다.
import java.util.*;
public class Main { // 일반적인 알고리즘 문제 Main 클래스에 작성.
  public static void main(String args[]) {
    Scanner sc = new Scanner(System.in); // System.in을 Argument로 넣어 생성
    									 // System.in은 System의 InputStream을 의미한다.
    int a, b;
    a = sc.nextInt();
    b = sc.nextInt();
    System.out.println(a + b);
  }
}

 

정수가 아닌 입력을 받을때 동안 정수 더하여 출력

public class Main {
  public static void main(String args[]) {
      Scanner sc = new Scanner(System.in);
      int sum = 0;
      while (sc.hasNextInt()) {
          sum += sc.nextInt();
      }
      System.out.println(sum);
      sc.close();
	}
}

 

 

BufferedReader (java.io.BufferedReader)

  • 입력이 많은 경우나 시간을 줄여야 할 때 BufferedReader를 사용하는 것이 빠르다.
import java.io.*;
public class Main {
	public static void main(String args[]) throws IOException {
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        String[] line = bf.readLine().split(" ");
        String a = line[0] + line[1];
        String b = line[2] + line[3];
        long ans = Long.valueOf(a) + Long.valueOf(b);
        System.out.println(ans);
 	}
}
  • BufferedReader는 read와 readLine이라는 메소드만 제공한다.
  • BufferedReader는 Scanner와 다르게 여러가지 형태의 자료형을 받을 수 없다.
  • 메소드에서 알 수 있듯 오직 문자열만 받을 수 있다.

 

StringBuilder

  • StringBuilder는 출력해야 할 것이 많은 경우에 이용한다.
  • 여러번 출력하는 것보다 StringBuilder를 이용해 문자열을 만들고 출력하는 것이 좋다.

 

 import java.util.*;
 public class Main {
    public static void main(String args[]) {
      Scanner sc = new Scanner(System.in);
      int n = sc.nextInt();
      StringBuilder sb = new StringBuilder();
      for (int i=1; i<=n; i++) {
        sb.append(i+"\n");
      }
      System.out.print(sb);
    }
  }
728x90

'Java & Spring' 카테고리의 다른 글

java int to char 형변환  (0) 2021.08.15
java Collection 프레임워크 정리  (0) 2021.08.11
java array관련 함수  (0) 2021.08.09
java string관련 함수정리  (0) 2021.08.08
자바 parseInt vs valueOf 차이  (0) 2021.08.07