[ν μ½ν μ½1.5 2-01] 컨νΈλ‘€ μ νΈ
π‘ν μ½ν μ½ μμ¦ 1.5 2ν λͺ¨μ off-site λ¬Έμ νμ΄μ λλ€. (2025.01.19)
λ¬Έμ
μΆμ²: νλ‘κ·Έλλ¨Έμ€ - 컨νΈλ‘€ μ νΈ
λ΄μ©
μ«μμ "Z"κ° κ³΅λ°±μΌλ‘ ꡬλΆλμ΄ λ΄κΈ΄ λ¬Έμμ΄μ΄ μ£Όμ΄μ§λλ€. λ¬Έμμ΄μ μλ μ«μλ₯Ό μ°¨λ‘λλ‘ λνλ €κ³ ν©λλ€. μ΄ λ "Z"κ° λμ€λ©΄ λ°λ‘ μ μ λνλ μ«μλ₯Ό λΊλ€λ λ»μ
λλ€. μ«μμ "Z"λ‘ μ΄λ£¨μ΄μ§ λ¬Έμμ΄ s
κ° μ£Όμ΄μ§ λ, λ¨Έμ±μ΄κ° ꡬν κ°μ return νλλ‘ solution ν¨μλ₯Ό μμ±ν΄λ³΄μΈμ.
κΈ°λ‘νκΈ°
π‘ μ΄λκΉμ§ μκ°ν΄λ΄€λμ§ λ¨κ³μ μΌλ‘ κΈ°λ‘ν΄λ΄ λλ€.
μ΄λ€ μκ³ λ¦¬μ¦μ μ μ©νλ € νλμ?
μ€ν μ¬μ© νλ€.
μ μ© κ·Όκ±°λ 무μμΈκ°μ?
"Z"κ° λμ€λ©΄ λ°λ‘ μ μ λνλ μ«μλ₯Ό λΊλ€λ κ²μ λ΄μ λ°λ‘ μ§μ μ μμ top μ μ κ±°νλ κ²μΌλ‘ μ΄ν΄νλ€.
λ¬Έμ νμ΄ κ³Όμ μμ ν΄λΉ μκ³ λ¦¬μ¦μ μ΄λ»κ² μ½λλ‘ κ΅¬ννλ € νλμ?
- Z λ§λλ©΄ top pop
- stack μ κ° λͺ¨λ λνκΈ°
νμ΄
νμ΄ μκ°
μμ μκ° | μ’ λ£ μκ° | μ΄ μμ μκ° |
---|---|---|
16:13 | 16:22 | 9λΆ |
λ¬Έμ λΆμ
μ μ½ μ¬ν νμ & ν μ€νΈ μΌμ΄μ€ μμ±
- 1 ≤
s
μ κΈΈμ΄ ≤ 200 - -1,000 <
s
μ μμ μ€ μ«μ < 1,000 s
λ μ«μ, "Z", 곡백μΌλ‘ μ΄λ£¨μ΄μ Έ μμ΅λλ€.s
μ μλ μ«μμ "Z"λ μλ‘ κ³΅λ°±μΌλ‘ ꡬλΆλ©λλ€.- μ°μλ 곡백μ μ£Όμ΄μ§μ§ μμ΅λλ€.
- 0μ μ μΈνκ³ λ 0μΌλ‘ μμνλ μ«μλ μμ΅λλ€.
s
λ "Z"λ‘ μμνμ§ μμ΅λλ€.s
μ μμκ³Ό λμλ κ³΅λ°±μ΄ μμ΅λλ€.- "Z"κ° μ°μν΄μ λμ€λ κ²½μ°λ μμ΅λλ€.
μ λ ₯κ° λΆμ
π‘ μ λ ₯κ°μ λΆμνλ©΄ λ¬Έμ μμ μꡬνλ μκ³ λ¦¬μ¦μ μκ° λ³΅μ‘λλ₯Ό κ°μ μ μΌλ‘ νμ ν μ μμ΅λλ€.
μ μΆλ ₯ μ
s | result |
---|---|
"1 2 Z 3" | 4 |
"10 20 30 40" | 100 |
"10 Z 20 Z 1" | 1 |
"10 Z 20 Z" | 0 |
"-1 -2 -3 Z" | -3 |
μ μΆλ ₯ μ μ€λͺ
μ μΆλ ₯ μ #1
- λ³Έλ¬Έκ³Ό λμΌν©λλ€.
μ μΆλ ₯ μ #2
- 10 + 20 + 30 + 40 = 100μ return ν©λλ€.
μ μΆλ ₯ μ #3
- "10 Z 20 Z 1"μμ 10 λ€μ Z, 20 λ€μ Zλ‘ 10, 20μ΄ μ§μμ§κ³ 1λ§ λνμ¬ 1μ return ν©λλ€.
μμ¬ μ½λ μμ±
π‘ μμ¬ μ½λλ λμ μ€μ¬μΌλ‘ μμ±νλ κ²μ΄ μ€μν©λλ€.
π‘ μμ¬ μ½λλ λ¬Έμ ν΄κ²° μμλ‘ μμ±ν©λλ€.
π‘ μμ¬ μ½λλ₯Ό μΆ©λΆν ν μ€νΈν΄λ΄ λλ€.
solution() {
// 1. μ€ν μμ±
// 2. String s split
// 3. for λ¬Έ
for (s) {
// 4. z λ§λλ©΄ pop()
}
return stackμ ν©
}
ꡬν
import java.util.Stack;
class Solution {
public int solution(String s) {
Stack<Integer> stack = new Stack<>();
String[] array = s.split(" ");
for (String a : array) {
if (a.equals("Z")) {
if (!stack.isEmpty()) stack.pop();
} else {
stack.push(Integer.parseInt(a));
}
}
int answer = 0;
while (!stack.isEmpty()) {
answer += stack.pop();
}
return answer;
}
}