ํฐ์คํ ๋ฆฌ ๋ทฐ
[๋ฌธ์ ]
https://school.programmers.co.kr/learn/courses/30/lessons/64065?language=java
[ํ์ด]
String ํ์์ผ๋ก ์ ๋ ฅ๋๋ ์งํฉ์ ๋ฌถ์ s๋ฅผ ๋ฌธ์์ด ํจ์๋ค๋ก ์ชผ๊ฐ์ด ๊ฐ ์งํฉ์ ArrayList์ ๋ด๊ณ ๋์ ์ด๋ฅผ ํฌ๊ธฐ ์์ผ๋ก ์ ์ฅ ํ๊ธฐ ์ํด ๊ณ ๋ฏผํด๋ณธ ๊ฒฐ๊ณผ, Comparable์ ์์๋ฐ์ Class๋ฅผ ์ด์ฉํด ์ฐ์ ์์ ํ๋ฅผ ์ด์ฉํ์์ต๋๋ค.
Tuple ํด๋์ค
Tuple ํด๋์ค๋ฅผ ์ ์ธํ์ฌ ์งํฉ์ ์ ์ฅํ set๊ณผ ์งํฉ์ ํฌ๊ธฐ size๋ฅผ ์ ์ธํด์ค๋๋ค.
compareToํจ์๋ฅผ ์ค๋ฒ๋ผ์ด๋ ๋ฐ์ ํฌ๊ธฐ์์ผ๋ก ์ ๋ ฌ ํ ์ ์๊ฒ size - o.size๋ฅผ returnํด์ค๋๋ค.
Tupleํด๋์ค๋ฅผ ์ ์ธํ ํ String s๋ฅผ ํ์ํ๋ฉฐ ๊ฐ ์งํฉ๋ค์ PriorityQueue<Tuple> pq ์ Tuple ๊ฐ์ฒด์ ํํ๋ก ์ฝ์ ํฉ๋๋ค. pq ์ธํ ์ด ์๋ฃ๋ ํ getTuple()๋ฅผ ํตํด poll()์ฐ์ฐ์ ํตํด ๊ฐ ์งํฉ์ ์ซ์๋ฅผ answer์ ์ฝ์ ํ๋ฉฐ ์ต์ข ํํ์ ๊ตฌํฉ๋๋ค.
[์ฝ๋]
import java.util.*;
class Tuple implements Comparable<Tuple>{
ArrayList<Integer> set;
int size;
public Tuple(ArrayList<Integer> set, int size) {
this.set = set;
this.size = size;
}
@Override
public int compareTo(Tuple o) {
return size - o.size;
}
}
class Solution {
public static PriorityQueue<Tuple> pq = new PriorityQueue<Tuple>();
public static int[] answer;
public int[] solution(String s) {
String[] str = s.split("");
int index = 1;
// PQ์ ๊ฐ ์งํฉ ์์๋ค์ split์ ํตํด ์ชผ๊ฐ์ ๋ฃ์, ์ด๋ ์งํฉ ํฌ๊ธฐ์์ผ๋ก ์ ์ฅ
while(index < str.length) {
if(str[index].equals("{")) {
int i = index + 1;
String temp = "";
ArrayList<Integer> list = new ArrayList<Integer>();
while(!str[i-1].equals("}")) {
if(str[i].equals(",") || str[i].equals("}")) {
list.add(Integer.parseInt(temp));
temp = "";
} else {
temp += str[i];
}
i++;
}
pq.offer(new Tuple(list,list.size()));
}
index++;
}
getTuple();
return answer;
}
// ํํ์ ๊ตฌํด์ค๋ค
public static void getTuple() {
ArrayList<Integer> list = new ArrayList<Integer>();
// ์์ List๋ถํฐ ํ์
while(!pq.isEmpty()) {
Tuple t = pq.poll();
// ์ด์ List์ ํฌํจ๋์ง ์์ ์ซ์๋ง ์ถ๊ฐ
for(Integer n:t.set) {
if(!list.contains(n)) {
list.add(n);
}
}
}
answer = new int[list.size()];
int i = 0;
for(Integer n:list) {
answer[i] = n;
i++;
}
}
}
'Algorithm > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java] ํ๋ก๊ทธ๋๋จธ์ค - ์ง๊ฒ๋ค๋ฆฌ ๊ฑด๋๊ธฐ (0) | 2022.07.13 |
---|---|
[Java] ํ๋ก๊ทธ๋๋จธ์ค - ๋ถ๋ ์ฌ์ฉ์ (0) | 2022.07.12 |
[Java] ํ๋ก๊ทธ๋๋จธ์ค - ํฌ๋ ์ธ ์ธํ๋ฝ๊ธฐ ๊ฒ์ (0) | 2022.07.11 |
[Java] ํ๋ก๊ทธ๋๋จธ์ค - ์บ์ (0) | 2022.07.07 |
[Java] ํ๋ก๊ทธ๋๋จธ์ค - ๋๊ตด ํํ (0) | 2022.07.07 |
- Total
- Today
- Yesterday
- ํ๋ก๊ทธ๋๋จธ์ค
- ์นด์นด์ค ์ธํด
- ์๊ณ ๋ฆฌ์ฆ
- ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ deep dive
- ์ฝ๋ฉํ ์คํธ
- ๋ ์์ปฌ ํ๊ฒฝ
- ํฌํฌ์ธํฐ
- ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ
- TDD
- ์ด๋ถํ์
- ๋ฐฑ์ค node.js
- ํ๋กํผํฐ
- JavaScript
- ์๋ฐ
- ์ด์์ฒด์
- Baekjoon
- ํ๋กํ ์ฝ
- 2019 ์นด์นด์ค ๊ฐ๋ฐ์ ๊ฒจ์ธ ์ธํด
- git
- fp
- ๋์์ธ ํจํด
- ๋ฐฑ์ค javascript
- map
- ์ ์ญ ๋ณ์
- ์๋ฐ์คํฌ๋ฆฝํธ
- ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ
- ํจ์ํ ํ๋ก๊ทธ๋๋ฐ
- http
- ๋ฐฑ์ค
- ๋คํธ์ํฌ
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |