β€οΈ Problem
- λ¬Έμ
λ¬Έμμ΄ sκ° μ£Όμ΄μ‘μ λ, sμ κ° μμΉλ§λ€ μμ λ³΄λ€ μμ λμμΌλ©΄μ, μμ κ³Ό κ°μ₯ κ°κΉμ΄ κ³³μ μλ κ°μ κΈμκ° μ΄λ μλμ§ μκ³ μΆμ΅λλ€.
μλ₯Ό λ€μ΄, s="banana"λΌκ³ ν λ, κ° κΈμλ€μ μΌμͺ½λΆν° μ€λ₯Έμͺ½μΌλ‘ μ½μ΄ λκ°λ©΄μ λ€μκ³Ό κ°μ΄ μ§νν μ μμ΅λλ€.
bλ μ²μ λμκΈ° λλ¬Έμ μμ μ μμ κ°μ κΈμκ° μμ΅λλ€. μ΄λ -1λ‘ ννν©λλ€.
aλ μ²μ λμκΈ° λλ¬Έμ μμ μ μμ κ°μ κΈμκ° μμ΅λλ€. μ΄λ -1λ‘ ννν©λλ€.
nμ μ²μ λμκΈ° λλ¬Έμ μμ μ μμ κ°μ κΈμκ° μμ΅λλ€. μ΄λ -1λ‘ ννν©λλ€.
aλ μμ λ³΄λ€ λ μΉΈ μμ aκ° μμ΅λλ€. μ΄λ 2λ‘ ννν©λλ€.
nλ μμ λ³΄λ€ λ μΉΈ μμ nμ΄ μμ΅λλ€. μ΄λ 2λ‘ ννν©λλ€.
aλ μμ λ³΄λ€ λ μΉΈ, λ€ μΉΈ μμ aκ° μμ΅λλ€. μ΄ μ€ κ°κΉμ΄ κ²μ λ μΉΈ μμ΄κ³ , μ΄λ 2λ‘ ννν©λλ€.
λ°λΌμ μ΅μ’ κ²°κ³Όλ¬Όμ [-1, -1, -1, 2, 2, 2]κ° λ©λλ€.
λ¬Έμμ΄ sμ΄ μ£Όμ΄μ§ λ, μμ κ°μ΄ μ μλ μ°μ°μ μννλ ν¨μ solutionμ μμ±ν΄μ£ΌμΈμ.
- μ ν μ¬ν
- 1 ≤ sμ κΈΈμ΄ ≤ 10,000
- sμ μμ΄ μλ¬Έμλ‘λ§ μ΄λ£¨μ΄μ Έ μμ΅λλ€.
- μ μΆλ ₯ μ & μ€λͺ
no | participant | result |
1 | "banana" | [-1, -1, -1, 2, 2, 2] |
2 | "foobar" | [-1, -1, 1, -1, -1, -1] |
- μ§λ¬Έκ³Ό κ°μ΅λλ€.
- μ€λͺ μλ΅
π Solution
νμ΄
import java.util.Arrays;
class Solution {
public int[] solution(String s) {
int[] answer = new int[s.length()];
int[] alpha = new int[26];
Arrays.fill(alpha, -1);
for(int i=0; i<s.length(); i++) {
int tmp = s.charAt(i)-97;
if(alpha[tmp] == -1) {
answer[i] = alpha[tmp];
} else {
answer[i] = i - alpha[tmp];
}
alpha[tmp] = i;
}
return answer;
}
}
μ²λ¦¬μλ VERY GOODπ
π Comment
λ¨Όμ λ°νν int[] answerμ s.lengthκΈΈμ΄λ§νΌ λ§λ€μ΄ λλ€. κ·Έ λ€μ, μνλ²³ κ°μλ§νΌμ λ°°μ΄ int[] alphaλ₯Ό λ§λ λ€. alpha[0]μ aλΌκ³ κ°μ νλ€. alpha[]μλ Arrays.fill();μ μ¬μ©ν΄μ -1μ©μ λ£μ΄λλ€. μ΄λ κ² νλ μ΄μ λ μ²μ λ±μ₯νλ μνλ²³μ -1 κ°μ κ°μ ΈμΌνκΈ° λλ¬Έμ΄λ€.
forλ¬Έ μμμ int tmp = s.charAt(i)-97;μ μ μΈνλ€. 97μ λΉΌλ μ΄μ λ μμ€ν€ μ½λμμ μλ¬Έμ aκ° 97λΆν° μμνκΈ° λλ¬Έμ, λ°°μ΄ 0λ²μ΄ aκ° λ μ μλλ‘ κ·Έ μ«μλ§νΌμ λΉΌλ κ²μ΄λ€.
κ·Έ λ€μ ifλ¬Έμ μ¬μ©ν΄μ alpha[tmp]κ° -1μ΄λ©΄ == μ¦, μ²μ λ±μ₯ν κ²½μ°μλ answer[i]μ alpha[tmp] κ°μ λ£λλ‘ νμλ€. κ·Έλ μ§ μμ κ²½μ°μλ alpha[tmp] μμ λ€μ΄μλ λ°°μ΄ μμΉλ₯Ό iμμ λΉΌμ€λ€. κ·Έ μ΄μ λ iλ νμ¬ μνλ²³μ νμ¬ μμΉμ΄λ―λ‘ μ¬κΈ°μ μΌλ§λ λ¨μ΄μ Έμλμ§λ₯Ό μκΈ° μν΄μ νΉμ μνλ²³μ΄ λ±μ₯ν νμ¬μμΉμμ ν΄λΉ μνλ²³μ΄ μ΄μ μ λ±μ₯ν λ°°μ΄ λ²νΈλ₯Ό λΉΌμΌνκΈ° λλ¬Έμ΄λ€.
κ·Έ λ€μ, alpha[tmp] = i;λ₯Ό λ£μ΄μ alpha[]μ ν΄λΉ μνλ²³μ΄ λ±μ₯ν μ΅μ μμΉλ₯Ό κ°±μ ν΄μ€λ€.
'Programmers lv-1' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
μ«μ μ§κΏ - Java [μ½λ©ν μ€νΈ μ°μ΅] (0) | 2022.12.27 |
---|---|
μ€ν¨μ¨ - Java [μ½λ©ν μ€νΈ μ°μ΅] (0) | 2022.12.26 |
κ³ΌμΌ μ₯μ - Java [μ½λ©ν μ€νΈ μ°μ΅] (2) | 2022.12.24 |
μμ£Όνμ§ λͺ»ν μ μ - Java [μ½λ©ν μ€νΈ μ°μ΅] (0) | 2022.12.23 |
μ½λΌ λ¬Έμ - Java [μ½λ©ν μ€νΈ μ°μ΅] (0) | 2022.12.21 |
λͺ¨μκ³ μ¬ - Java [μ½λ©ν μ€νΈ μ°μ΅] (0) | 2022.12.19 |
λκΈ