https://school.programmers.co.kr/learn/courses/30/lessons/12981?language=python3
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
Algorithm
Idea
return 값은 번호 = (i%n)+1, 차례 = (i//n)+1
끝말잇기의 비교는 words[i][0] != words[i-1][-1]
Python
def solution(n, words):
for i in range(1,len(words)):
if words[i][0] != words[i-1][-1] or words[i] in words[:i]:
return [(i%n)+1,(i//n)+1]
else:
return [0,0]
Java
import java.util.HashSet;
class Solution {
public int[] solution(int n, String[] words) {
int[] answer = {0, 0};
HashSet<String> wordSet = new HashSet<>();
wordSet.add(words[0]);
char lastChar = words[0].charAt(words[0].length() - 1);
char currChar;
for (int i = 1; i < words.length; i++) {
currChar = words[i].charAt(0);
if (lastChar != currChar || wordSet.contains(words[i])) {
answer[0] = (i % n) + 1;
answer[1] = (i / n) + 1;
break;
}
wordSet.add(words[i]);
lastChar = words[i].charAt(words[i].length() - 1);
}
return answer;
}
}
'자료구조&알고리즘 > 프로그래머스' 카테고리의 다른 글
[Programmers] 조건에 맞게 수열 변환하기 2 (JAVA, PYTHON) (0) | 2023.11.29 |
---|---|
[Programmers] 점프와 순간 이동 (JAVA, PYTHON) (0) | 2023.11.03 |
[Programmers] 소수 만들기 (JAVA, PYTHON) (0) | 2023.11.03 |
[Programmers] 예산 (JAVA, PYTHON) (0) | 2023.11.03 |
[Programmers] 할 일 목록 (JAVA, PYTHON) (0) | 2023.10.10 |