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)이 결국 문제에서 요구하는 상의와 하의가 서로 다른 색상인 조합
을 구하는 공식이 될 수 있다.