Tags
- ์๋ฎฌ๋ ์ด์
- sort
- Python
- dfs
- ๊ทธ๋ํ ํ์
- Dynamic Programming
- BFS
- ๋ฐฑํธ๋ํน
- ์ํ
- greedy
- Java
- CodingTest
- ๋ฌธ์์ด
- BOJ
- stack
- ์๋ฃ๊ตฌ์กฐ
- ๊ทธ๋ํ ์ด๋ก
- SpringBoot
- ๋๋น ์ฐ์ ํ์
- Brute Force Algorithm
- ์ ๋ ฌ
- Study
- ๊ตฌํ
- ๊น์ด ์ฐ์ ํ์
- ๊ต์ฌ
- DP
- ์ ์๋ก
- queue
- LV2
- PGM
Archives
๊ธฐ๋ก๋ฐฉ
Lv.2 : ์์ถ ๋ณธ๋ฌธ
๐ธ ๋ฌธ์ ๋ถ์ ๐ธ
- ์์ถ ์๊ณ ๋ฆฌ์ฆ์ธ LZW๋ฅผ ๊ตฌํํ๋ ๋ฌธ์ ์ด๋ค.
- ์๊ณ ๋ฆฌ์ฆ ์ค๋ช ์ ๋ฐ๋ผ ๋ฌธ์์ด ์ฒ๋ฆฌ๋ฅผ ์ํํ๋ ๋ฌธ์ ์ด๋ค.
- ์ํ๋ฒณ ๋๋ฌธ์๋ง ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋ค.
๐ธ ๋ฌธ์ ํ์ด ๐ธ
- ์์ธ๋๋ ๋ฌธ์์ด๋ค์ ๊ทธ ๊ฐ์ ๋ฆฌ์คํธ์ ์ ์ฅํ๋ค.
- ์์ธ๋์ง ์๋ ๋ฌธ์์ด์ ์๋กญ๊ฒ ์ถ๊ฐํ๋ค.
- ๋ฆฌ์คํธ์ ๊ฐ์ ๋ฐํํ๋ค.
๐ธ ์ฝ๋ ๐ธ
import java.util.Map;
import java.util.HashMap;
import java.util.List;
import java.util.ArrayList;
class Solution {
public int[] solution(String msg) {
// ์ฌ์ ์ด๊ธฐํ
Map<String, Integer> map = new HashMap<>();
for (int i = 0; i < 26; i++) {
map.put((char)('A' + i) + "", i + 1);
}
// ์ธ๋ฑ์ฑ
List<Integer> list = new ArrayList<>();
for (int i = 0; i < msg.length(); i++) {
int len = 1;
while (i + len <= msg.length() && map.containsKey(msg.substring(i, i + len))) {
len++;
}
list.add(map.get(msg.substring(i, i + len - 1)));
if (i + len <= msg.length())
map.put(msg.substring(i, i + len), map.size() + 1);
i += len - 2;
}
// ์ถ๋ ฅ
int[] answer = new int[list.size()];
for (int i = 0; i < list.size(); i++) {
answer[i] = list.get(i);
}
return answer;
}
}
๐ธ ์ฝ๋ ํด์ ๐ธ
- ์ํ๋ฒณ ๋๋ฌธ์ 26๊ฐ๋ฅผ map์ ์ ์ฅํด๋๋ค.
- ์์ธ๋์ง ์์๋ ๊น์ง ๋ถ๋ถ ๋ฌธ์์ด์ ๋๋ ค๊ฐ๋ค.
- ๋ง์ง๋ง์ผ๋ก ์์ธ๋ ๊ฐ์ list์ ์ ์ฅํ๋ค.
- ์์ธ๋์ง ์์ ๋ถ๋ถ ๋ฌธ์์ด์ ์๋กญ๊ฒ ์์ธ์ ์ถ๊ฐํ๋ค.
- ์์ธ๋ ๊ฐ ์ดํ๋ก ๋ค์ ๋ถ๋ถ ๋ฌธ์์ด์ ๊ณ์ฐํ๋ค.
- list์ ์ ์ฅ๋ ๊ฐ๋ค์ ๋ฐํํ๋ค.
๐ธ end ๐ธ
- LZW๋ผ๋ ์์ถ ์๊ณ ๋ฆฌ์ฆ์ ๊ตฌํํ๋ ๋ฌธ์ ์ฌ์, ๋ฌธ์ ์ค๋ช
๋์ ๋ณด๊ณ ์ด๋ ต์ง ์์๊น ํ๋๋ฐ ์๊ฐ๋ณด๋จ ๊ฐ๋จํ๋ค.
- ์ต๋๊ธธ์ด ๋ฌธ์์ด์ ๊ตฌํ ๋, ๋ฌธ์์ด์ ๋ฒ์๋ฅผ ๋ฒ์ด๋๋ ๊ฒฝ์ฐ๋ฅผ ์์ธ์ฒ๋ฆฌํ์ง ์์์ ๋๋ฒ๊น ์ด ํ์ํ๋ค.
- 2018 KAKAO RECRUITMENT์ 2๋ฒ ๋ฌธ์ ์ด๊ณ ์ ๋ต๋ฅ ์ 95.80%๋ก ์ฌ์ด ๋์ด๋์ธ ๊ฒ ๊ฐ๋ค.
- ๋ค์์ ๊ณต์ ํด์ค ๋ด์ฉ์ด๋ค.
GIF ํ์ผ ๋ฑ์์ ์ค์ ๋ก ์ฐ์ด๋ LZW ์๊ณ ๋ฆฌ์ฆ์ ์ค๋ช ํด์ฃผ๊ณ , ๊ตฌํํ๋ ๋ฌธ์ ์ ๋๋ค. ์ค์ ๋ก ์ฐ์ด๋ ์๊ณ ๋ฆฌ์ฆ์ ๊ตฌํํด๋ณด๋ ๊ฒ์ด ์ด๋ ์ จ๋์? ์์ถ์ด๋ผ๋ ๋ง๋ง์ผ๋ก ์ผํ ์ด๋ ค์ ๋ณด์ด์ง๋ง, ์ค๋ช ์ ๋์จ ์์ฌ์ฝ๋Pseudocode๋ฅผ ๊ทธ๋๋ก ๋ฐ๋ผ์ ๊ตฌํ๋ง ํ๋ฉด ๋๋ ๋ฌธ์ ๋ก, ๊ธฐ์ด์ ์ธ ๋ฌธ์์ด๊ณผ ๋ฐฐ์ด์ ๋ค๋ฃฐ ์ ์๋ค๋ฉด ํ ์ ์๋ ๋ฌธ์ ์ ๋๋ค.
์ด ๋ฌธ์ ์ ์ ๋ต๋ฅ ์ 95.80%์ ๋๋ค. ๊ฐ์ฅ ๋ง์ ์ง์์๊ฐ ์ ํ์ด์ฃผ์ จ์ต๋๋ค. ์ธ์ด๋ณ๋ก๋ Java ์ธ์ด ์ฌ์ฉ์๋ค์ด ์กฐ๊ธ ์ด๋ ค์ํ์ต๋๋ค.
728x90
'CodingTest > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Lv.2 : ๊ฒ์ ๋งต ์ต๋จ๊ฑฐ๋ฆฌ (0) | 2023.11.21 |
---|---|
Lv.2 : n์ง์ ๊ฒ์ (0) | 2023.11.11 |
Lv.2 : k์ง์์์ ์์ ๊ฐ์ ๊ตฌํ๊ธฐ (0) | 2023.11.08 |
Lv.2 : ๋ด์ค ํด๋ฌ์คํฐ๋ง (0) | 2023.11.07 |
Lv.2 : ํ๋ก์ธ์ค (0) | 2023.11.03 |