코딩 테스트/Level 2

38. 영어 끝말잇기

컴닥 2020. 8. 21. 15:25
반응형

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

영어 끝말잇기
Summer/Winter Coding(~2018) 
2663명 완료

 

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

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

파이썬

def solution(n, words):
    for i, v in enumerate(words):
        if (v in words[:i]) or (words[i - 1][-1] != v[0] if i > 0 else False):
            return [i % n + 1, i // n + 1]
    return [0, 0]

set을 쓰는 것이 좋은 방법입니다. 

 

자바

import java.util.HashSet;

class Solution {
    public int[] solution(int n, String[] words) {
        var spoken = new HashSet<String>();
        spoken.add(words[0]);
        for (var i = 1; i < words.length; i++) {
            if (spoken.contains(words[i]) || words[i].charAt(0) != words[i - 1].charAt(words[i - 1].length() - 1))
                return new int[]{i % n + 1, i / n + 1};
            spoken.add(words[i]);
        }
        return new int[]{0, 0};
    }
}
반응형