영어 끝말잇기

문제


문제 풀이

자료구조를 사용하지 않고 입력 받은 배열 매개변수에서 바로 꺼내서 비교를 하는 방식으로 진행함. 

 


나의 답안

public static int[] solution(int n, String[] words) {
    int[] answer = {0, 1};

    boolean flag = false;
    for (int i = 1; i < words.length; i++) {

        for (int j = i - 1; j >= 0; j--) {
            if (words[i].equals(words[j]) || words[i].charAt(0) != words[i - 1].charAt(words[i - 1].length() - 1)) {
                answer[0] = i % n + 1;
                answer[1] = i / n + 1;
                flag = true;
            }
        }

        if (flag) {
            break;
        }
    }
    return answer[0] == 0 ? new int[]{0, 0} : answer;
}

다른 답안

자료구조를 활용한 답안이다. 

 

import java.util.HashSet;

class Solution {
    public int[] solution(int n, String[] words) {
        int[] answer = new int[2];
        HashSet<String> set = new HashSet<String>();
        String prev = "";
        set.add(words[0]);
        for(int i = 1; i < words.length; i ++){
            prev = words[i - 1];
            if(set.contains(words[i]) || prev.charAt(prev.length() - 1) != words[i].charAt(0)){
                answer[0] = i % n + 1;
                answer[1] = (i / n + 1) ;
                break;
            }
            set.add(words[i]);
        }
        return answer;
    }
}

'Programmers 문제풀이 > Lv.2' 카테고리의 다른 글

가장 큰 수  (0) 2023.03.30
카펫  (0) 2023.03.30
짝지어 제거하기  (0) 2023.03.30
피보나치 수  (0) 2023.03.30
이진수 더하기  (0) 2023.03.30