Algorithm/프로그래머스

[Lv. 2] 영어 끝말잇기

녱녱 2023. 7. 30.

1. 첫번째 단어부터 조건을 검색하도록 한다

2. 현재 단어가 이미 나온 단어인이거나 이전 단어의 마지막 글자와 현재 단어의 첫번째 글자가 일치하지 않는지 검사

  - 조건이 참이면 잘못된 글자이므로 해당 위치를 answer에 저장하고 반환

  - answer[0]: 해당 위치의 인덱스(i)를 한 줄에 들어가는 단어의 개수(n)로 나눈 나머지에 1을 더해 줄 번호 계산

  - answer[1]: 해당 위치의 인덱스(i)를 한 줄에 들어가는 단어의 개수(n)로 나눈 몫에 1을 더해서 위치 계산

class Solution {
    public int[] solution(int n, String[] words) {
        int[] answer = new int[2];

        Map<String, Integer> map = new HashMap<>();
        
        for(int i = 0; i < words.length; i++){
            if(i != 0){
                String s1 = words[i - 1];
                String s2 = words[i];
            
                if(map.containsKey(s2) || s1.charAt(s1.length() - 1) != s2.charAt(0)){
                    answer[0] = (i % n) + 1;
                    answer[1] = (i / n) + 1;
                
                    return answer;
                }
            }
            map.put(words[i], 1);
        }

        return answer;
    }
}

 

'Algorithm > 프로그래머스' 카테고리의 다른 글

[Lv. 1] 달리기 경주  (0) 2023.08.08
[Lv. 1] 체육복  (0) 2023.08.08
[Lv. 1] 개인정보 수집 유효기간  (0) 2023.07.30
[Lv. 1] 햄버거 만들기  (0) 2023.07.29
[Level 1] 숫자 문자열과 영단어  (0) 2023.07.23

댓글