티스토리 뷰
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"});
}
}
'자료구조' 카테고리의 다른 글
자료구조 | 4-5 연속된 숫자는 싫어! (0) | 2022.06.08 |
---|---|
자료구조 | 4-3 로또 번호 검출기 (Set 활용) (0) | 2022.06.08 |
자료구조 | 4-2 Set, interface (0) | 2022.06.08 |
자료구조 | 4-1.집합(Set), 교집합, 합집합, 차집합 (0) | 2022.06.07 |
자료구조 | 3-2 완주하지못한선수 (0) | 2022.06.05 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 자료표현
- 2진수
- K번째수
- 2019 카카오 개발자 겨울 인턴십
- ASCII코드
- 프로그래머스 # 음양더하기
- 코딩테스트
- java
- 브루트포스
- 오
- stack
- Git
- 카카오 코딩테스트
- 자료구조
- solved.ac
- 프로그래머스
- 인형뽑기
- 1063
- 킹
- 10진수
- 알고리즘
- 크레인 인형뽑기 게임
- 백준
- 구현
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함