Notice
Recent Posts
Recent Comments
Link
«   2024/09   »
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
29 30
Archives
Today
Total
관리 메뉴

Life Engineering

[프로그래머스] 영어 끝말잇기 (Java) 본문

Problem Solving

[프로그래머스] 영어 끝말잇기 (Java)

흑개 2022. 1. 21. 12:44

https://programmers.co.kr/learn/courses/30/lessons/12981

 

코딩테스트 연습 - 영어 끝말잇기

3 ["tank", "kick", "know", "wheel", "land", "dream", "mother", "robot", "tank"] [3,3] 5 ["hello", "observe", "effect", "take", "either", "recognize", "encourage", "ensure", "establish", "hang", "gather", "refer", "reference", "estimate", "executive"] [0,0]

programmers.co.kr

import java.util.*;

class Solution {
    Map<String, Integer> m=new HashMap<>();
    public int[] solution(int n, String[] words) {
        int[] answer = {0,0};
        for (int i=0; i<words.length; i++){
            if ((i==0 && words[i].length()<2) || i>0 && !isValid(words[i], words[i-1])){
                answer[0]=(i%n)+1;
                answer[1]=(i/n)+1;
                break;
            }
            m.put(words[i],0);
        }
        return answer;
    }
    public boolean isValid(String cur, String prev){
        if (cur.length()<2)
            return false;
        if (m.get(cur)!=null)
            return false;
        if (cur.charAt(0)!=prev.charAt(prev.length()-1))
            return false;
        return true;
    }
}

map 쓸 필요 없다!!

list에 이전꺼 집어넣어 준다음, list.contains(now와 같이 체크해주면 된다. 어차피 배열의 크기는 100이하니까 list.contains 함수에 있는지 체크해주면 된다!!