문제
상근이와 친구들은 MT에 가서 아래 설명과 같이 재미있는 게임을 할 것이다.
각 플레이어는 1이상 100 이하의 정수를 카드에 적어 제출한다. 각 플레이어는 자신과 같은 수를 쓴 사람이 없다면, 자신이 쓴 수와 같은 점수를 얻는다. 만약, 같은 수를 쓴 다른 사람이 있는 경우에는 점수를 얻을 수 없다.
상근이와 친구들은 이 게임을 3번 했다. 각 플레이어가 각각 쓴 수가 주어졌을 때, 3번 게임에서 얻은 총 점수를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 참가자의 수 N이 주어진다. (2 ≤ N ≤ 200) 둘째 줄부터 N개 줄에는 각 플레이어가 1번째, 2번째, 3번째 게임에서 쓴 수가 공백으로 구분되어 주어진다.
출력
각 플레이어가 3번의 게임에서 얻은 총 점수를 입력으로 주어진 순서대로 출력한다.
힌트
플레이어 1 : 0 + 0 + 0 = 0
플레이어 2 : 0 + 0 + 92 = 92
플레이어 3 : 63 + 89 + 63 = 215
플레이어 4 : 99 + 0 + 99 = 198
플레이어 5 : 89 + 0 + 0 = 89
풀이
다중배열을 이용해야하는 문제. 하나의 n행 3열로 입력받은 뒤 스위치를 통해서 같은 수가 나오면 0으로 치환해주도록 하였다. 이후 배열바다 남은 값의 합을 구하면 끝! ㅇㅅㅇ 생각보다 조금 복잡해서 시간이 걸렸던 문제
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
public class Main {
public static void main(String args[]) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int n=Integer.parseInt(br.readLine()); //사람수 입력
int [][]arr=new int[n][3]; //다중배열 생성
for(int i=0;i<n;i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
for(int j=0;j<3;j++) {
arr[i][j]=Integer.parseInt(st.nextToken());
}//배열에 값 입력받기
}
for(int i=0;i<n;i++) {
for(int j=0;j<3;j++) {
int sw=0; //스위치
for(int k=0;k<n;k++) {
if(i!=k && arr[i][j]==arr[k][j]) {
arr[k][j]=0;
sw=1;
}
}
if(sw==1) {arr[i][j]=0;}
}
}
}
}
|
https://www.acmicpc.net/problem/5533
반응형
'Algorithms > BOJ[Java]' 카테고리의 다른 글
[백준/17530번] Buffon(Maratona de Programação SBC 2019)[Java] (0) | 2019.12.22 |
---|---|
[백준/15740번] A+B - 9 [Java] (0) | 2019.12.22 |
[백준/15803번] PLAYERJINAH’S BOTTLEGROUNDS (2018 SCCC Programming Contest)[Java] (0) | 2019.12.21 |
[백준/2676번] 라스칼 삼각형(2011 Greater New York Programming Contest )[Java] (0) | 2019.12.20 |
[백준/7326번] Number Steps (Tehran Site 2000)[Java] (0) | 2019.12.17 |