티스토리 뷰

Algorithm

[백준] B1 18868 멀티버스 1 (java)

코딩브론즈 2020. 12. 22. 16:31

www.acmicpc.net/problem/18868

 

18868번: 멀티버스 Ⅰ

M개의 우주가 있고, 각 우주에는 1부터 N까지 번호가 매겨진 행성이 N개 있다. 행성의 크기를 알고 있을때, 균등한 우주의 쌍이 몇 개인지 구해보려고 한다. 구성이 같은데 순서만 다른 우주의 쌍

www.acmicpc.net

 

풀이

 

1) 중복되지 않게 이중 포문을 돌린다.

2) 배열을 2개 뽑아서 비교할 거임

2-1) 중복되지 않게 이중 포문을 돌린다.

2-2) arr1과 arr2 가 같은 우주면 false, 다른 우주면 true를 리턴한다

3) false가 리턴될 때마다 answer++

4) answer 출력

 

주의사항

 

1) Combination을 쓰는 문제가 아니다.

2) 같은 우주가 3개 이상이여도 한 쌍으로 취급하면 안된다.

 

package com.baekJoon;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.StringReader;
import java.util.Arrays;
import java.util.StringTokenizer;

public class BJ_B1_18868_멀티버스1 {
	static BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
	static StringTokenizer tokens;
	static int M,N,map[][];
	public static void main(String[] args) throws NumberFormatException, IOException {
		input = new BufferedReader(new StringReader(src));
		tokens = new StringTokenizer(input.readLine());
		M = Integer.parseInt(tokens.nextToken());
		N = Integer.parseInt(tokens.nextToken());
		map = new int[M][N];
		
		for(int r=0; r<M; r++) {
			tokens = new StringTokenizer(input.readLine());
			for(int c=0; c<N; c++) {
				map[r][c] = Integer.parseInt(tokens.nextToken());
			}	
		}
		int answer = 0;
		for(int i=0; i<M-1; i++) {
			for(int j=i+1; j<M; j++) {
				if(!compare(map[i], map[j])) {
					answer++;
				}
			}
		}
		System.out.println(answer);
	}

	private static boolean compare(int[] arr1, int[] arr2) {
		for(int i=0; i<N-1; i++) {
			for(int j=i+1; j<N; j++) {
				if(arr1[i] > arr1[j]) {
					if(arr2[i] <= arr2[j]) {
						return true;
					}
				}else if(arr1[i] < arr1[j]) {
					if(arr2[i] >= arr2[j]) {
						return true;
					}
				}else {
					if(arr2[i] != arr2[j]) {
						return true;
					}
				}
			}
		}
		return false;
	}

	static String src =
			"5 3\r\n" + 
			"20 10 30\r\n" + 
			"10 20 60\r\n" + 
			"80 25 79\r\n" + 
			"30 50 80\r\n" + 
			"80 25 81";
}

 

 

후기

 

개인적으로 골드보다 더 힘든 문제였다. 몇달째 못풀었는지 모른다.

내가 멍청한건지 문제가 이상한건지.. 질문한사람이 없는걸 보니 내가 이상한것 같다.

브론즈는 브론즈답게 풀어야겠다. 생각할수록 화나는 문제.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
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
글 보관함