π°ππππππππ/πΏππππππππππ
[νλ‘κ·Έλλ¨Έμ€/Java] Level2 - μμ΄ λλ§μκΈ°
ν΄λ²λ
2023. 11. 29. 12:22
λ°μν
λ¬Έμ
https://school.programmers.co.kr/learn/courses/30/lessons/12981
νλ‘κ·Έλλ¨Έμ€
μ½λ μ€μ¬μ κ°λ°μ μ±μ©. μ€ν κΈ°λ°μ ν¬μ§μ 맀μΉ. νλ‘κ·Έλλ¨Έμ€μ κ°λ°μ λ§μΆ€ν νλ‘νμ λ±λ‘νκ³ , λμ κΈ°μ κΆν©μ΄ μ λ§λ κΈ°μ λ€μ λ§€μΉ λ°μΌμΈμ.
programmers.co.kr
νμ΄
ν리λ κ²½μ°λ λ κ°μ§μ΄λ€.
1οΈβ£ μ΄λ―Έ λ§ν λ¨μ΄λ₯Ό λ€μ λ§νλ μ¬λ
2οΈβ£ λλ§μ μ΄μ΄ λ§νμ§ μμ μ¬λ
μ΄ λ κ°μ§λ₯Ό 체ν¬νλ©΄μ νλ¦° μ¬λμ μ‘μλ΄λ©΄(?) λλ€.
import java.util.HashSet;
class Solution {
public int[] solution(int n, String[] list) {
int[] answer = new int[2];
HashSet<String> word = new HashSet<>();
int index = 0;
for (int i = 0; i < list.length; i++) {
if (i > 0 && word.contains(list[i])) {
index = i; // μ΄λ―Έ μλ λ¨μ΄λ₯Ό λ§ν¨
break; // μ²μ νλ¦° μ¬λμ μΆμΆνλ©΄ λλ―λ‘ μ°ΎμΌλ©΄ break
} else {
word.add(list[i]); // μ²μ μ°λ λ¨μ΄λ wordμ μΆκ°
}
// λ¨μ΄ λκ³Ό μ²μ charAt λΉκ΅ / ex) apple -> banana (λ€μ μλ μΈλ±μ€κ° νλ¦°κ±°λκΉ index = i+1 λ£μ΄μ£ΌκΈ°
if (i < list.length - 1 && list[i].charAt(list[i].length() - 1) != list[i + 1].charAt(0)) {
index = i + 1;
break; // μ²μ νλ¦° μ¬λμ μΆμΆνλ©΄ λλ―λ‘ μ°ΎμΌλ©΄ break
}
}
if (index > 0) {
index += 1;
answer[0] = index % n; // λͺ λ²μ§Έλ‘ λ§νλ μ¬λμΈμ§
answer[1] = (int) Math.ceil((double) index / n); // λͺ μΈνΈ νλμ§
if (answer[0] == 0) {
answer[0] = n;
}
}
return answer;
}
}
μ λ΅
λ°μν