본문 바로가기
프로그래머스/[프로그래머스 - JAVA] Lv.0

[프로그래머스 - JAVA] 외계어 사전

by 코딩하는 흰둥이 2023. 3. 15.
반응형

 

  • 입출력 예
spell dic result
["p", "o", "s"] ["sod", "eocd", "qixm", "adio", "soo"]  2
["z", "d", "x"] ["def", "dww", "dzx", "loveaw"] 1
["s", "o", "m", "d"] ["moos", "dzx", "smm", "sunmmo", "som"] 2

 

  • 입출력 예 설명

1. 입출력 예 #1

"p", "o", "s" 를 조합해 만들 수 있는 단어가 dic에 존재하지 않습니다. 따라서 2를 return합니다.

 

2. 입출력 예 #2

"z", "d", "x" 를 조합해 만들 수 있는 단어 "dzx"가 dic에 존재합니다. 따라서 1을 return합니다.

 

3. 입출력 예 #3
"s", "o", "m", "d" 를 조합해 만들 수 있는 단어가 dic에 존재하지 않습니다. 따라서 2을 return합니다.

 

 

  • 유의사항

입출력 예 #3 에서 "moos", "smm", "som"도 "s", "o", "m", "d" 를 조합해 만들 수 있지만 spell의 원소를 모두 사용해야 하기 때문에 정답이 아닙니다.


  • 내 풀이
class Solution {
    public int solution(String[] spell, String[] dic) {
        int answer = 2;
        
    	// spell로 이루어진 글자가 있는지 확인하기 위한 변수
        int count = 0;

	// dic의 매개변수 만큼 반복을 시키면서 첫번째 배열 안에 spell이 포함되어 있는지 확인
        for (int i = 0; i < dic.length; i++) {
            for (int j = 0; j < spell.length; j++) {
            // 일치하는 spell 이 있을때 마다 증가
                if (dic[i].contains(spell[j])) {
                    count++;
                }
		// dic[i] 한 배열에 spell 개수와 count 값이 같으면 있는것으로 break로 나감
                if(count == spell.length){
                    answer = 1;
                    break;
                }
            }
            count = 0;
        }
        return answer;
    }
}

코드가 깔끔하진 않지만 간단하게 끝났다.

 

 

  • 다른 사람 풀이
class Solution {
    public int solution(String[] spell, String[] dic) {
        for(int i=0;i<dic.length;i++){
            int answer = 0;
            for(int j=0;j<spell.length;j++){
                if(dic[i].contains(spell[j])) answer ++;
            }
            if(answer==spell.length) return 1;
        }
        return 2;
    }
}

댓글