알고리즘 공부/프로그래머스
(Java)프로그래머스 코딩테스트 연습 - Summer/Winter Coding(~2018) - 영어 끝말잇기
HRuler
2020. 11. 29. 16:39
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;
}
}