[programmers] νν - Java
ννμ νννλ λ¬Έμμ΄ sκ° μ£Όμ΄μ§ λ, sλ₯Ό λ°°μ΄λ‘ λ³ννλ λ¬Έμ μ
λλ€. μ£Όμ΄μ§ λ¬Έμμ΄μμ {{, }}λ₯Ό μ κ±°νκ³ },{λ₯Ό ꡬλΆμλ‘ λΆν ν ν, λΆν ν λ¬Έμμ΄μ κΈΈμ΄λ₯Ό κΈ°μ€μΌλ‘ μ λ ¬ν©λλ€. κ·Έ ν κ° λ¬Έμμ΄μ ,λ₯Ό ꡬλΆμλ‘ λΆν νμ¬ μ μλ₯Ό μΆμΆνκ³ , ν λ²λ λ±μ₯νμ§ μμ μλ₯Ό 리μ€νΈμ μΆκ°ν©λλ€.
Mar 17, 2024
νν
λ¬Έμ μ€λͺ
μ
μμλ μλμ μμμλ μ΄κ±° λλ μ΄λ€ μμλ₯Ό λ°λ₯΄λ μμλ€μ λͺ¨μμ νν(tuple)μ΄λΌκ³ ν©λλ€. nκ°μ μμλ₯Ό κ°μ§ ννμ n-νν(n-tuple)μ΄λΌκ³ νλ©°, λ€μκ³Ό κ°μ΄ ννν μ μμ΅λλ€.
- (a1, a2, a3, ..., an)
ννμ λ€μκ³Ό κ°μ μ±μ§μ κ°μ§κ³ μμ΅λλ€.
- μ€λ³΅λ μμκ° μμ μ μμ΅λλ€. ex : (2, 3, 1, 2)
- μμμ μ ν΄μ§ μμκ° μμΌλ©°, μμμ μμκ° λ€λ₯΄λ©΄ μλ‘ λ€λ₯Έ ννμ λλ€. ex : (1, 2, 3) β (1, 3, 2)
- ννμ μμ κ°μλ μ νν©λλ€.
μμμ κ°μκ° nκ°μ΄κ³ , μ€λ³΅λλ μμκ° μλ νν
(a1, a2, a3, ..., an)
μ΄ μ£Όμ΄μ§ λ(λ¨, a1, a2, ..., anμ μμ°μ), μ΄λ λ€μκ³Ό κ°μ΄ μ§ν© κΈ°νΈ '{', '}'λ₯Ό μ΄μ©ν΄ ννν μ μμ΅λλ€.- {{a1}, {a1, a2}, {a1, a2, a3}, {a1, a2, a3, a4}, ... {a1, a2, a3, a4, ..., an}}
μλ₯Ό λ€μ΄ ννμ΄ (2, 1, 3, 4)μΈ κ²½μ° μ΄λ
- {{2}, {2, 1}, {2, 1, 3}, {2, 1, 3, 4}}
μ κ°μ΄ ννν μ μμ΅λλ€. μ΄λ, μ§ν©μ μμμ μμκ° λ°λμ΄λ μκ΄μμΌλ―λ‘
- {{2}, {2, 1}, {2, 1, 3}, {2, 1, 3, 4}}
- {{2, 1, 3, 4}, {2}, {2, 1, 3}, {2, 1}}
- {{1, 2, 3}, {2, 1}, {1, 2, 4, 3}, {2}}
λ λͺ¨λ κ°μ νν (2, 1, 3, 4)λ₯Ό λνλ
λλ€.
νΉμ ννμ νννλ μ§ν©μ΄ λ΄κΈ΄ λ¬Έμμ΄ sκ° λ§€κ°λ³μλ‘ μ£Όμ΄μ§ λ, sκ° νννλ ννμ λ°°μ΄μ λ΄μ return νλλ‘ solution ν¨μλ₯Ό μμ±ν΄μ£ΌμΈμ.
[μ νμ¬ν]
- sμ κΈΈμ΄λ 5 μ΄μ 1,000,000 μ΄νμ λλ€.
- sλ μ«μμ '{', '}', ',' λ‘λ§ μ΄λ£¨μ΄μ Έ μμ΅λλ€.
- μ«μκ° 0μΌλ‘ μμνλ κ²½μ°λ μμ΅λλ€.
- sλ νμ μ€λ³΅λλ μμκ° μλ ννμ μ¬λ°λ₯΄κ² νννκ³ μμ΅λλ€.
- sκ° νννλ ννμ μμλ 1 μ΄μ 100,000 μ΄νμΈ μμ°μμ λλ€.
- return νλ λ°°μ΄μ κΈΈμ΄κ° 1 μ΄μ 500 μ΄νμΈ κ²½μ°λ§ μ λ ₯μΌλ‘ μ£Όμ΄μ§λλ€.
[μ μΆλ ₯ μ]
s | result |
"{{2},{2,1},{2,1,3},{2,1,3,4}}" | [2, 1, 3, 4] |
"{{1,2,3},{2,1},{1,2,4,3},{2}}" | [2, 1, 3, 4] |
"{{20,111},{111}}" | [111, 20] |
"{{123}}" | [123] |
"{{4,2,3},{3},{2,3,4,1},{2,3}}" | [3, 2, 4, 1] |
μ μΆλ ₯ μμ λν μ€λͺ
μ μΆλ ₯ μ #1
λ¬Έμ μμμ κ°μ΅λλ€.
μ μΆλ ₯ μ #2
λ¬Έμ μμμ κ°μ΅λλ€.
μ μΆλ ₯ μ #3
(111, 20)μ μ§ν© κΈ°νΈλ₯Ό μ΄μ©ν΄ νννλ©΄ {{111}, {111,20}}μ΄ λλ©°, μ΄λ {{20,111},{111}}κ³Ό κ°μ΅λλ€.
μ μΆλ ₯ μ #4
(123)μ μ§ν© κΈ°νΈλ₯Ό μ΄μ©ν΄ νννλ©΄ {{123}} μ
λλ€.
μ μΆλ ₯ μ #5
(3, 2, 4, 1)μ μ§ν© κΈ°νΈλ₯Ό μ΄μ©ν΄ νννλ©΄ {{3},{3,2},{3,2,4},{3,2,4,1}}μ΄ λλ©°, μ΄λ {{4,2,3},{3},{2,3,4,1},{2,3}}κ³Ό κ°μ΅λλ€.
solution.java
import java.util.*; class Solution { public ArrayList<Integer> solution(String s) { ArrayList<Integer> answer = new ArrayList<>(); s = s.substring(2, s.length() - 2); String[] sets = s.split("\\},\\{"); Arrays.sort(sets, Comparator.comparingInt(String::length)); for (String set : sets) { String[] elements = set.split(","); for (String element : elements) { int num = Integer.parseInt(element); if (!answer.contains(num)) answer.add(num); } } return answer; } }
ν΅μ¬ ν€μλ
- λ¬Έμμ΄μμ {{, }}λ₯Ό μ κ±°ν ν, },{λ₯Ό ꡬλΆμλ‘ λ¬Έμμ΄μ λΆν νλ€.
substring()
κ³Όsplit()
μ ν΅ν΄ λ¬Έμμ΄μ μ κ±°νκ³ λΆν ν μ μλ€.
- λΆν ν λ¬Έμμ΄μ κΈΈμ΄λ₯Ό κΈ°μ€μΌλ‘ μ λ ¬νλ€.
Arrays.sort()
,Comparator.comparingInt(String::length)
λ₯Ό ν΅ν΄ μ‘°κ±΄μ΄ λΆμ μ λ ¬μ μννλ€.
- κ°κ°μ λ¬Έμμ΄μ ,λ₯Ό ꡬλΆμλ‘ λΆν ν΄μ μ μλ₯Ό ꡬνλ€.
- λ§μ½ ν λ²λ λ±μ₯νμ§ μμ μλΌλ©΄ 리μ€νΈμ μΆκ°νλ€.
κ²°λ‘ !
ν΄λΉ λ¬Έμ λ₯Ό νλ©΄μ μ΄λ»κ² λ¬Έμμ΄μ λΆν ν΄μ κΈΈμ΄ μμΌλ‘ μ λ ¬ν μ μμμ§μ λν΄ λ§μ΄ κ³ λ―Όνλλ°, μ΄λ₯Ό
substring()
κ³Ό split()
, Arrays.sort()
, Comparator.comparingInt(String::length)
λ₯Ό ν΅ν΄ ν΄κ²°ν μ μμλ€.Share article