CODEKATA 51 ~ 55

Tak Jeon·2025년 1월 8일

알고리즘

목록 보기
64/101

51번 푸드 파이트 대회

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;
        }
    }

52번 콜라 문제

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;
    }
}

53번 명예의 전당 (1)

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;
    }
}

54번 2016년

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);
        }
    }

55번 카드 뭉치

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;
    }
}
profile
문제 해결을 좋아하는 개발자 입니다 :)

0개의 댓글