백준 17140 JAVA - 2차원 배열과 연산

삼성 SW 역량테스트 기출 문제 - 백준 17140 2차원 배열과 연산을 풀었다.

 

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

 

17140번: 이차원 배열과 연산

첫째 줄에 r, c, k가 주어진다. (1 ≤ r, c, k ≤ 100) 둘째 줄부터 3개의 줄에 배열 A에 들어있는 수가 주어진다. 배열 A에 들어있는 수는 100보다 작거나 같은 자연수이다.

www.acmicpc.net

 

문제를 정확히 이해 하는 것이 중요하다.  
수의 등장 횟수가 커지는 순으로, 그러한 것이 여러가지면 수가 커지는 순으로 정렬한다.

이러한 정렬을 위해서 Number 클래스를 만들고 Comparable을 이용해서 등장횟수와 수의 크기를 이용해서 정렬 기준을 만든다.

 

그다음

행렬에서 행과 열의 길이 R과 C의 길이를 구하고 행을 늘릴 지 열을 늘릴 지에 대해서 정한다.

그리고 행 / 열에서 나타나는 수의 등장횟수를 구해서 Number List에 넣고, 숫자와 등장횟수 순으로 값을 넣어준다.

 

구현된 Java 코드는 다음과 같다.