프로그래머스 영어 끝말잇기(java)
2023. 1. 19. 13:11ㆍ코딩테스트/프로그래머스
문제
https://school.programmers.co.kr/learn/courses/30/lessons/12981
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제요약
1. 사람 수, 사람들이 말하는 단어들을 String 배열로 주어진다.
2. 단어가 중복되거나 앞사람이 말한 단어의 마지막 문자와 뒷사람이 말한 단어의 첫 문자가 다를 경우 탈락한 사람의 번호와 해당 사람이 몇번째 말하기에 떨어졌는지 return 해준다.
중복이 된다 -> Set을 활용하자
나의 풀이
class Solution {
public int[] solution(int n, String[] words) {
// 문제가 없을 경우를 초기화
int[] answer = {0, 0};
// 첫 단어를 입력해준다.
Set<String> set = new HashSet<>();
set.add(words[0]);
for(int i=1; i<words.length; i++){
// 탈락하는 경우 탈락한 사람의 번호와 해당 사람이 몇번쨰 말하기인지 반환
if(isEliminate(set, words, i)){
answer[0] = i % n + 1;
answer[1] = i / n + 1;
break;
}
else
set.add(words[i]);
}
return answer;
}
// 탈락하는 조건
private boolean isEliminate(Set set, String[] words, int i) {
return (words[i - 1].charAt(words[i - 1].length()-1) != words[i].charAt(0) || set.contains(words[i])) ? true : false;
}
}'코딩테스트 > 프로그래머스' 카테고리의 다른 글
| 프로그래머스 N개의 최소공배수(java) (0) | 2023.01.19 |
|---|---|
| 프로그래머스 구명보트(java) (0) | 2023.01.19 |
| 프로그래머스 - 짝지어 제거하기(java) (2) | 2023.01.18 |
| 프로그래머스 다음 큰 숫자 java (0) | 2023.01.12 |
| 프로그래머스 피보나치 수 (0) | 2023.01.11 |