From 368fd533a1441e0d78a50d7088d8b8f537dbba87 Mon Sep 17 00:00:00 2001 From: rl544 <111494264+rl544@users.noreply.github.com> Date: Tue, 17 Jan 2023 18:37:30 +0900 Subject: [PATCH] =?UTF-8?q?uploaded=20at=202023.=201.=2017.=20=EC=98=A4?= =?UTF-8?q?=ED=9B=84=206:37:30?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- programmers/[3차] 압축/solution.java | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 programmers/[3차] 압축/solution.java diff --git a/programmers/[3차] 압축/solution.java b/programmers/[3차] 압축/solution.java new file mode 100644 index 0000000..1e5fc6e --- /dev/null +++ b/programmers/[3차] 압축/solution.java @@ -0,0 +1,28 @@ +// [문제 링크]: https://school.programmers.co.kr/learn/courses/30/lessons/17684 + +import java.util.*; +class Solution { + public int[] solution(String msg) { + ArrayList al = new ArrayList<>(); + int idx = 27; + HashMap hm = new HashMap<>(); + for(char a = 'A'; a <= 'Z'; a++){ + String t = String.valueOf(a); + hm.put(t,a-64); + } + for(int a = 0; a < msg.length();){ + int i = 1, res = 0; + while(a+i<= msg.length()){ + if(hm.containsKey(msg.substring(a,a+i))){ + res = hm.get(msg.substring(a,a+i++)); + } else{ + hm.put( msg.substring(a,a+i--), idx++ ); + break; + } + } + al.add(res); + a += i; + } + return al.stream().mapToInt(x -> x).toArray(); + } +} \ No newline at end of file