
import java.util.stream.*;
class Solution_for {
public String solution(int[] food) {
StringBuilder sb = new StringBuilder();
for (int i = 1; i < food.length; i++) {
for (int j = 0; j < food[i] / 2; j++) {
sb.append(i);
}
}
String answer = sb.toString();
answer += "0" + sb.reverse().toString();
return answer;
}
}
class Solution_stream {
public String solution(int[] food) {
StringBuilder sb = new StringBuilder();
IntStream.range(1, food.length)
.forEach(i -> sb.append(String.valueOf(i).repeat(food[i] / 2)));
String answer = sb.toString();
answer += "0" + sb.reverse().toString();
return answer;
}
}
class Solution {
public int solution(int a, int b, int n) {
int answer = 0;
while(n >= a){
int canChange = n / a;
int yetChange = n % a;
n = canChange * b + yetChange;
answer += canChange * b;
}
return answer;
}
}
import java.util.*;
class Solution {
public int[] solution(int k, int[] score) {
int[] answer = new int[score.length];
PriorityQueue<Integer> pq = new PriorityQueue<>();
for(int i = 0 ; i < score.length ; i++){
if(pq.size() == k){
if(pq.peek() < score[i]){
pq.poll();
pq.add(score[i]);
}
}else{
pq.add(score[i]);
}
answer[i] = pq.peek();
}
return answer;
}
}
import java.time.*;
class Solution_first {
public String solution(int a, int b) {
Map<Integer, String> map = new HashMap<>();
map.put(1, "MON");
map.put(2, "TUE");
map.put(3, "WED");
map.put(4, "THU");
map.put(5, "FRI");
map.put(6, "SAT");
map.put(7, "SUN");
LocalDate date = LocalDate.of(2016, a, b);
DayOfWeek dow = date.getDayOfWeek();
int dowNumber = dow.getValue();
return map.get(dowNumber);
}
}
class Solution_second {
public String solution(int a, int b) {
LocalDate date = LocalDate.of(2016, a, b);
DayOfWeek dow = date.getDayOfWeek();
return String.valueOf(dow).substring(0, 3);
}
}
class Solution {
public String solution(String[] cards1, String[] cards2, String[] goal) {
String answer = "Yes";
int oneIdx = 0;
int twoIdx = 0;
for(int i = 0 ; i < goal.length; i++){
if(cards1[oneIdx].equals(goal[i])){
oneIdx = Math.min(oneIdx + 1, cards1.length - 1);
}else if(cards2[twoIdx].equals(goal[i])){
twoIdx = Math.min(twoIdx + 1, cards2.length - 1);
}else{
answer = "No";
break;
}
}
return answer;
}
}