home > algorithm > baekjoon > [baekjoon] 베라의 패션 (백준 15439 java 풀이)

[baekjoon] 베라의 패션 (백준 15439 java 풀이)
algorithm baekjoon step19

intro : 상의와 하의가 다른 색상을 구하는 경우의 수는 N * (N -1) 이다.

백준 문제링크

문제

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

입력

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

출력

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

제한

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

문제 풀이 (104ms)

import java.io.*;

public class Main {
    public static void main(String[] args) throws IOException {
        // 입출력을 위한 BufferedReader, BufferedWriter 객체 생성
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        // br을 통해 읽은 값 정수로 변환
        int input = Integer.parseInt(br.readLine());
        // 상의와 하의가 다른 색으로 조합할 수 있는 경우의 수 계산
        int result = input * (input - 1);

        // bw로 출력하기 위해 문자열로 변환 후 write
        bw.write(String.valueOf(result));
        bw.flush();

        // 자원 반납
        bw.close();
        br.close();
    }
}

문제 해석

해당 문제의 포인트는 주어진 N의 갯수가 동일한 상의와 하의를 가진다는 말이다. 예를들어서 N이 3이 주어진 경우 상의와 하의는 다음과 같이 표현할 수 있다.

상의 : 1  2  3
하의 : 1  2  3

위 상황에서 1번 상의는 하의 1번을 제외한 하의와의 조합이 다른색상이기에 상의 1번은 하의 2,3번과 조합 할 수 있다. 이어서 2번 상의는 하의 1,3번과 조합할 수 있으며, 3번 상의는 하의 1,2번과 조합 할 수 있다. 해당 내용을 반복문을 통해 count를 계산할 수 도 있지만. 단순히 수식으로 표현하여 계산할 수 있는데 그 방법이 주어진 인자값 N * (N - 1)이 결국 문제에서 요구하는 상의와 하의가 서로 다른 색상인 조합 을 구하는 공식이 될 수 있다.