티스토리 뷰

package programmers.lv2;

import java.util.*;


/**
 * packageName    : programmers.lv2
 * fileName       : Main
 * author         : ipeac
 * date           : 2022-06-02
 * description    :
 * ===========================================================
 * DATE              AUTHOR             NOTE
 * -----------------------------------------------------------
 * 2022-06-02        ipeac       최초 생성
 */
/*
끝말 잇기
문제 설명
입력되는 단어가 순서대로 배치될 때 끝말잇기로 끝까지 이어지는지 확인하세요.
끝말잇기는 사용했던 단어가 다시 사용되면 안됩니다.
단어의 첫 글자는 앞 단어의 마지막 글자로 시작되어야 합니다.
(단, 첫 단어의 첫 글자는 확인하지 않습니다.)

입력1: ["tank", "kick", "know", "wheel", "land", "dream"]
출력1: true

단어의 연결이 모두 이어지고, 중복되는 단어가 없었습니다.

입력2: ["tank", "kick", "know", "wheel", "land", "dream", "mother", "robot", "tank"]
출력2: false

사용되었던 tank 단어가 다시 사용되었습니다.
* */
class Solution {
      
      public boolean solution(String[] words) {
            boolean answer = true;
            System.out.println("words = " + Arrays.toString(words));
            Set<String> set = new HashSet<>(Arrays.asList(words));
            
            //중복단어 검증
            answer = words.length == set.size();
            if (!answer) {
                  return false;
            }
            //끝말잇기 연계 검증
            for (int i = 1; i < words.length; i++) {
                  String pre = words[i - 1].substring(words[i - 1].length() - 1);
                  String now = words[i].substring(0, 1);
                  System.out.println("pre = " + pre);
      
                  System.out.println("now = " + now);
                  //전 단어의 끝말과 현재 단어의 첫말이 다르다면 false
                  if (!pre.equals(now)) {
                        return false;
                  }
                  
            }
            return answer;
      }
      
}

public class Main {
      
      public static void main(String[] args) {
            Solution solution = new Solution();
            solution.solution(new String[]{"tank", "kick", "know", "wheel", "land", "dream"});
            System.out.println("======================================================");
            solution.solution(
                new String[]{"tank", "kick", "know", "wheel", "land", "dream", "mother", "robot", "tank"});
      }
      
}
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
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
글 보관함