알고리즘

[ 알고리즘 ] 2중 배열안에서 같은 수 찾기 ( 3중 for )

Chars4785 2019. 9. 4. 14:27

@ 카카오 후보키 문제

package sol4;

import java.util.LinkedList;
import java.util.List;

public class Main {
	public static void main(String[] args) {
		Solution sol = new Solution();
		String [][] a = {{"100","ryan","music","2"},{"200","apeach","math","2"},{"300","tube","computer","3"},{"400","con","computer","4"},{"500","muzi","music","3"},{"600","apeach","music","2"}};
		int result = sol.solution(a);
			System.out.println(result);
	}
}

class Solution {
    public int solution(String[][] relation) {
        int answer = 0;
        int[] result = new int[relation[0].length];
        
        for(int i = 0;i<relation[0].length;i++) {
        	
        	for(int j=0;j<relation.length-1;j++) {
        		// 한번 더 조건을 줘서 시간을 단축할수도 있다.
        		String temp = relation[j][i];
        		for(int k= j+1 ;k<relation.length;k++) {
        			if(temp.equals(relation[k][i]) && result[i] == 0 ) {
        				result[i] = 1;
        			}
        		}
        	}
        }
        
        return answer;
    }
}

[["100","ryan","music","2"],

["200","apeach","math","2"],

["300","tube","computer","3"],

["400","con","computer","4"],

["500","muzi","music","3"],

["600","apeach","music","2"]]

 

카카오 후보키 찾는 문제를 푸는 도중 궁금해서 해본 코드이다.

후보키를 찾기 위해서 먼저 든 생각이 같은 글자의 인텍스를 구하기 위한 코드 3중 포문을 돌려서 만들어 보았다.

 

## 결국 해답은 이렇게 푸는 것이 아니다.