programmers.co.kr/learn/courses/30/lessons/12981
1. 유형
구현
2. 아이디어
- HashSet
- 몫, 나머지 연산
3. 풀이
집중적으로 볼것은 규칙 4번 입니다.
- HashSet의 contains만 사용하면 됩니다.
- 반복문이 끝날 때, 현 문자열의 마지막 char만 저장해주면 됩니다.
4. 코드
import java.util.*;
class Solution {
static HashSet<String> diction;
public int[] solution(int n, String[] words) {
int[] answer = new int[2];
char lastChar = ' ';
diction = new HashSet<>();
int turn=0;
int personNumber=0;
int index=0;
boolean notFound=true;
for(int i=0; i<words.length; i++){
//규칙3
if(!rule3(i, lastChar, words[i])){
index=i;
notFound=false;
break;
}
//규칙4
if(!rule4(words[i])){
index=i;
notFound=false;
break;
}
//규칙5
if(words[i].length()==1){
index=i;
notFound=false;
break;
}
lastChar = words[i].charAt(words[i].length()-1);
}
if(!notFound){
answer[0]=(index%n)+1;
answer[1]=(index/n)+1;
}else{
answer[0]=0;
answer[1]=0;
}
return answer;
}
static boolean rule3(int i, char lastChar, String word){
if(i==0 || lastChar==word.charAt(0)){
return true;
}else{
return false;
}
}
static boolean rule4(String word){
if(diction.contains(word)){
return false;//이미 있음
}else{
diction.add(word);
return true;
}
}
}
'알고리즘 > 프로그래머스' 카테고리의 다른 글
프로그래머스 - (Python, Java) 오픈채팅방 (0) | 2021.05.03 |
---|---|
프로그래머스 -(python) 전화번호 목록 (0) | 2021.04.27 |
프로그래머스 - 최솟값 만들기 (0) | 2021.04.13 |
프로그래머스 - 튜플프로그래머스 - 튜플 (0) | 2021.04.05 |
프로그래머스 - 소수 찾기(level2) (0) | 2021.04.04 |