import java.util.HashSet;
import java.util.Set;
class Solution {
public static void main(String[] args) {
String [] words = {"hello", "one", "even", "never", "now", "world", "draw"};
solution(2, words);
}
public static int[] solution(int n, String[] words) {
int[] answer = new int [2];
String [][] arr = new String [n][words.length/n];
Set <String> set = new HashSet<>();
for(int i = 0; i < arr.length; i++){
for(int j = 0; j < arr[i].length; j++){
arr[i][j] = words[i + j*n];
}
}
String sc = null;
String ec = arr[0][0].substring(0,1);
for(int i = 0; i < arr[0].length; i++){
for(int j = 0; j < n; j++){
sc = arr[j][i].substring(0,1);
if(set.contains(arr[j][i]) == false && sc.equals(ec)){
ec = arr[j][i].substring(arr[j][i].length()-1, arr[j][i].length());
set.add(arr[j][i]);
}else{
//j - 인간 , i - 횟수
answer[0] = j+1;
answer[1] = i+1;
break;
}
}
}
return answer;
}
}
1차 코드는 사실 % 문제가 있어서 수정...
import java.util.HashSet;
import java.util.Set;
class Solution {
public static void main(String[] args) {
String [] words = {"tank", "kick", "know", "wheel", "land", "dream", "mother", "robot", "tank"};
solution(3, words);
}
public static int[] solution(int n, String[] words) {
int[] answer = new int [2];
Set <String> set = new HashSet<>();
boolean flag = true;
set.add(words[0]);
for(int i = 1; i < words.length; i++){
if(words[i-1].charAt(words[i-1].length()-1) != words[i].charAt(0)
|| set.contains(words[i])){
answer[0] = (i%n) + 1;
answer[1] = (i/n) + 1;
flag = false;
break;
}
set.add(words[i]);
}
if(flag == false){
return answer;
}else{
return new int[] {0, 0};
}
}
}
for 문 중복되는거 해결하려고 열심히 짜보다가
i/n 에서 머리 아파하면서 검색 해 봤더니 i%n으로 해결됨!
댓글
댓글 쓰기