[코딩테스트]

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

everydeveloper 2024. 4. 4. 21:40

문제 설명

PROGRAMMERS-962 행성에 불시착한 우주비행사 머쓱이는 외계행성의 언어를 공부하려고 합니다. 알파벳이 담긴 배열 spell 외계어 사전 dic 매개변수로 주어집니다. spell 담긴 알파벳을 한번씩만 모두 사용한 단어가 dic 존재한다면 1, 존재하지 않는다면 2 return하도록 solution 함수를 완성해주세요.

 

풀이 해석 및 해결 방법 수립

 

1. spell  단어들을

이중 for문으로

하나씩 contains 하고 있는지 확인하고

 돌면 완료

 

2. 풀다가 contains 부분에서 에러가 났다.

배열엔 그런 메소드가 없다고 해서 어레이 리스트로 바꿀까 하다가

그걸로 안하고도 저번에 비슷한 문제를 풀 수 있었던 것이 생각이 나서

좀더 검색해보고

String에 내가 진짜 원하던 건 replace였다는 걸을 알게 되었다.

 

String으로 바꾸고 배열에서 바로 될 것 같기도 한데 암튼

String 클래스의 replace 메소드를 쓰니

바로 동작이 되었다

 

class Solution {
    public int solution(String[] spell, String[] dic) {
        int answer = 0;
        
        for(int i = 0; i < dic.length ; i++){
            for(int j = 0; j < spell.length; j++){
                String str = dic[i];
                if(str.contains(spell[j])){
                    dic[i] = str.replace(spell[j], " ");
                }else{
                    dic[i] = "2";
                }
            }
            
            for(int j = 0; j < spell.length; j++){
                String str = dic[i];
                dic[i] = str.replaceAll(" ", "");
            }
            
            if(dic[i].equals("")){ answer = 1; break;}
            else{answer = 2;}
            
        }
        
        return answer;
    }
}