From 3f111fd06eb26d22ebcf330206bd61644d20cd24 Mon Sep 17 00:00:00 2001 From: rl544 <111494264+rl544@users.noreply.github.com> Date: Sun, 18 Dec 2022 00:19:05 +0900 Subject: [PATCH] =?UTF-8?q?uploaded=20at=202022.=2012.=2018.=20=EC=98=A4?= =?UTF-8?q?=EC=A0=84=2012:19:04?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- programmers/숫자 짝꿍/solution.java | 34 +++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 programmers/숫자 짝꿍/solution.java diff --git a/programmers/숫자 짝꿍/solution.java b/programmers/숫자 짝꿍/solution.java new file mode 100644 index 0000000..f30fca9 --- /dev/null +++ b/programmers/숫자 짝꿍/solution.java @@ -0,0 +1,34 @@ +// [문제 링크]: https://school.programmers.co.kr/learn/courses/30/lessons/131128 + +import java.util.*; +import java.util.stream.Collectors; +import java.util.stream.Stream; +class Solution { + public String solution(String X, String Y) { + String answer = ""; + LinkedList an = new LinkedList<>(); + HashMap hash = new HashMap<>(); + HashMap hash2 = new HashMap<>(); + char[] yy = Y.toCharArray(); + char[] xx = X.toCharArray(); + for(char cy : yy){ + int nn = Character.getNumericValue(cy); + hash.put(nn,hash.getOrDefault(nn,0)+1); + } + for(char cx : xx){ + int nn = Character.getNumericValue(cx); + hash2.put(nn,hash2.getOrDefault(nn,0)+1); + } + for(Integer key : hash.keySet()){ + if(hash2.getOrDefault(key,0)==0) continue; + Integer count = Math.min(hash.get(key),hash2.get(key)); + for(int oo = 0; oo < count; oo++) + an.add(key); + } + Object[] ans = an.toArray(); + answer = Arrays.stream(ans).map(String::valueOf).sorted(Comparator.reverseOrder()).collect(Collectors.joining()); + answer = (answer.equals(""))? "-1" : answer; + answer = (answer.matches("^0+")) ? "0" : answer; + return answer; + } +} \ No newline at end of file