1. 문제
https://programmers.co.kr/learn/courses/30/lessons/12981?language=java
코딩테스트 연습 - 영어 끝말잇기
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
2. 나의 풀이
import java.util.*;
class Solution {
public int[] solution(int n, String[] words) {
int [] answer = {0, 0};
ArrayList<String> arr = new ArrayList<>();
for(int i = 0; i < words.length; i = i + 1) {
if(i == 0) {
arr.add(words[i]);
continue;
}
//System.out.println(Character.toString(words[i - 1].charAt(words[i - 1].length() - 1)));
if(words[i].charAt(0) != words[i - 1].charAt(words[i - 1].length() - 1)) {
answer[1] = (i / n) + 1;
answer[0] = (i % n) + 1;
break;
}else if(arr.contains(words[i])) {
answer[1] = (i / n) + 1;
answer[0] = (i % n) + 1;
break;
}
arr.add(words[i]);
}
return answer;
}
}
3. 다른 사람 풀이
import java.util.HashSet;
class Solution {
public int[] solution(int n, String[] words) {
int[] answer = { 0, 0 };
char chEnd = words[0].charAt(words[0].length() - 1);
char chStart;
System.out.print(chEnd + " ");
HashSet<String> log = new HashSet<>();
log.add(words[0]);
for (int i = 1; i < words.length; i++) {
chStart = words[i].charAt(0);
log.add(words[i]);
if (chEnd != chStart || log.size() != i + 1) {
System.out.print(i + 1 + "!");
answer[0] = (i % n)+1;
answer[1] = (i / n) + 1;
break;
}
chEnd = words[i].charAt(words[i].length() - 1);
System.out.print(chEnd + " ");
}
System.out.println();
System.out.println("(" + answer[0] + ", " + answer[1] + ")");
return answer;
}
}
'알고리즘 공부 > 프로그래머스' 카테고리의 다른 글
(Java)프로그래머스 코딩테스트 연습 - 2018 KAKAO BLIND RECRUITMENT - [1차] 뉴스 클러스터링 (0) | 2020.11.29 |
---|---|
(Java)프로그래머스 코딩테스트 연습 - 2017팁스타운 - 예상 대진표 (0) | 2020.11.29 |
(Java)프로그래머스 코딩테스트 연습 - Summer/Winter Coding(~2018) - 점프와 순간 이동 (0) | 2020.11.29 |
(Java)프로그래머스 코딩테스트 연습 - Summer/Winter Coding(~2018) - 소수 만들기 (0) | 2020.11.29 |
(Java)프로그래머스 코딩테스트 연습 - 연습문제 - N개의 최소공배수 (0) | 2020.11.28 |