[BaekJoon] 15439번 - 베라의 패션 (java)

1. 문제

👉 문제 바로가기

- 조건

시간 제한 메모리 제한
2초 256MB


- 문제

베라는 상의 N 벌과 하의 N 벌이 있다. i 번째 상의와 i 번째 하의는 모두 색상 i를 가진다. N 개의 색상은 모두 서로 다르다.
상의와 하의가 서로 다른 색상인 조합은 총 몇 가지일까?

- 입력

입력은 아래와 같이 주어진다.

N


- 출력

상의와 하의가 서로 다른 색상인 조합의 가짓수를 출력한다.

- 제한

◾ 1 ≤ N ≤ 2017
◾ N은 정수이다.

- 예제

  입력      출력  
1 0
2 2
5 20





2. 풀이


2개의 입력방식을 사용해서 결과를 출력한다.

  1. Scanner 클래스
  2. BufferedReader 클래스





2-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();
        
        System.out.println((N - 1) * N);
    }
}

위와같이 객체를 생성할 때, Scanner(System.in) 에서 System.in 은 입력한 값을 Byte 단위로 읽는 것을 뜻한다.

int형 데이터를 입력받기 위해 nextInt() 메서드를 사용한다.

하나의 상의 는 같은 색을 가진 하의를 제외한 N - 1 개의 조합 을 가진다.
상의는 모두 N 벌이므로, 총 조합의 수는 (N - 1) * N 이다.



[여기서 잠깐!]

Scanner에 대해 더 자세히 알고싶다면 여기 를 클릭하세요





2-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());
        
        System.out.println((N - 1) * N);
    }
}

readLine() 메서드를 사용해 입력받은 값을 한 줄 통째로 읽어 String 으로 반환한다.

Integer.parseInt()을 사용해 String형을 int형으로 변환시켜준다.



[여기서 잠깐!]

BufferedReader 클래스에 대해 더 알아보고 싶으면 여기를 클릭하면 된다.






3. Scanner VS BufferedReader 성능 비교

image

입력의 경우 확실히 Scanner 보다는 BufferedReader 가 빠른 것을 볼 수 있다.





관련 페이지

Categories:

Updated:

Leave a comment