๋ฌธ์
https://school.programmers.co.kr/learn/courses/30/lessons/12981?language=java
ํ์ด
import java.util.*;
class Solution {
public int[] solution(int n, String[] words) {
int[] answer = {0, 0};
Map<String, Integer> map = new HashMap<>();
for(int i=0; i<words.length; i++){
if(i!=0){
String prev = words[i-1];
String curr = words[i];
char last = prev.charAt(prev.length() - 1);
char first = curr.charAt(0);
if(map.containsKey(curr) || last != first){
answer[0] = (i % n) + 1;
answer[1] = (i / n) + 1;
return answer;
}
}
map.put(words[i], 1);
}
return answer;
}
}
์ด ๋ฌธ์ ๋ Map ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ด์ฉํ์ฌ ํ ์ ์๋ ๋ฌธ์ ์ด๋ค. ์ฒ์์๋ ์คํ์ ๋ชจ๋ ๊ฐ์ ๋ฃ๊ณ ์ผ์ผ์ด ๋น๊ตํ๋ ค๊ณ ํ์์ผ๋ ํจ์จ์ ์ด์ง ์๊ณ ์ค๋ณต์ฒดํฌ๋ฅผ ํด์ผํ๊ธฐ ๋๋ฌธ์ Map์ ์ด์ฉํ์๋ค.
1. ์ด์ ๋จ์ด๋ฅผ prev, ํ์ฌ ๋จ์ด๋ฅผ curr์ ์ ์ฅํ๋ค.
2. ์ด์ ๋จ์ด์ ๋ง์ง๋ง ๋ฌธ์๋ฅผ last, ํ์ฌ ๋จ์ด์ ์ฒซ๋ฒ์งธ ๋ฌธ์๋ฅผ first์ ์ ์ฅ
3. ๋ง์ฝ ํ์ฌ ๋จ์ด๊ฐ map์ ์์ ๊ฒฝ์ฐ ๋๋ ๋ง์ง๋ง ๋ฌธ์์ ํ์ฌ์ ์ฒซ๋ฒ์งธ ๋ฌธ์๊ฐ ๊ฐ์ง ์์ ๊ฒฝ์ฐ ํ๋ฝ์ด๋ฏ๋ก return ํด์ค๋ค.
4. ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ map์ ํ์ฌ์ ๋จ์ด๋ฅผ putํ๊ณ ๋ค์์ผ๋ก ๋์ด๊ฐ๋ค.
์ต์ข ์ ์ผ๋ก ๋ชจ๋ words๋ฅผ ๋์์ ๋ ์คํจํ์ง ์์ผ๋ฉด ์ฒ์ answer๋ฅผ ์ด๊ธฐํ ํ๋ [0,0]์ด ๋ฐํ๋๊ณ ์ค๊ฐ์ ์คํจํ ๊ฒฝ์ฐ answer๊ฐ ๋ฐํ๋๋ค.
map๋ง๊ณ set์ด๋ ๋ค๋ฅธ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ์ฌ ํ์ด๋ฅผ ํ ์๋ ์์ผ๋ฏ๋ก ์ฐธ๊ณ ํ๊ธฐ ๋ฐ๋๋ค.
'๐๏ธ Algorithm > โฌ ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
โฌ [Programmers] [Java] [Level2] ์์ ๋์งํ (0) | 2024.01.19 |
---|---|
โฌ [Programmers] [Java] [Level2] ์ ํ์ ์๊ฐ์ด๋ (0) | 2024.01.16 |
โฌ [Programmers] [Java] [Level2] ์ง์ง์ด ์ ๊ฑฐํ๊ธฐ (0) | 2024.01.07 |
โฌ [Programmers] [Java] [Level2] ์ด์ง ๋ณํ ๋ฐ๋ณตํ๊ธฐ (1) | 2024.01.04 |
โฌ [Programmers] [Java] [Level2] ์ต์๊ฐ ๋ง๋ค๊ธฐ (2) | 2024.01.03 |