스프링 부트와 JPA 활용2 - 도메인 분석 설계
팀스터디

https://school.programmers.co.kr/learn/courses/30/lessons/138476?language=java
import java.util.ArrayList;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
class Solution {
public int solution(int k, int[] tangerine) {
int answer = 1;
HashMap<Integer, Integer> tgr = new HashMap<>();
for (int i = 0; i < tangerine.length; i++) {
tgr.put(tangerine[i], tgr.getOrDefault(tangerine[i], 0) + 1);
}
List<Integer> keySet = new ArrayList<>(tgr.keySet());
keySet.sort(new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return tgr.get(o2).compareTo(tgr.get(o1)); //내림차순
}
});
for (Integer key : keySet) {
int n = tgr.get(key);
if (n >= k) {
return answer;
} else {
k -= n;
answer += 1;
}
}
return answer;
}
}
import java.util.*;
class Solution {
public int solution(int k, int[] tangerine) {
int answer = 0;
HashMap<Integer,Integer> map =new HashMap<>();
for (int t : tangerine) {
map.put(t, map.getOrDefault(t, 0) + 1);
}
List<Integer> list = new ArrayList<>(map.keySet());
list.sort((o1, o2) -> map.get(o2)-map.get(o1));
for(Integer key:list){
k -=map.get(key);
answer++;
if(k<=0){
break;
}
}
return answer;
}
}

https://school.programmers.co.kr/learn/courses/30/lessons/12973?language=java
import java.util.Stack;
public int solution(String s) {
Stack<Character> stack = new Stack<>();
char ch = s.charAt(0);
stack.push(ch);
for (int i = 1; i < s.length(); i++) {
char cur = s.charAt(i);
if (cur == ch) {
stack.pop();
i+=1;
} else {
stack.push(s.charAt(i));
ch = cur;
}
}
if (stack.isEmpty()) //최종 스택이 비어있다면
return 1;
else
return 0;
}
public int solution(String s){
Stack<Character> stack = new Stack<>();
for (int i = 0; i < s.length(); i++) {
char ch = s.charAt(i);
if (!stack.isEmpty() && stack.peek() == ch) {
stack.pop();
} else { //비어있으면
stack.push(ch);
}
}
return stack.isEmpty() ? 1 : 0;
}