본문 바로가기
CodingTest

코딩테스트 입문 - Day 23

by Jiwon_Loopy 2025. 5. 11.
반응형

특이한 정렬


import java.util.Arrays;

class Solution {
public static int[] solution(int[] numlist, Integer n) {
        for (int i = 0; i < numlist.length - 1; i++) {
            int secIdx = i;

            for (int j = i + 1; j < numlist.length; j++) {
                int curDiff = Math.abs(n - numlist[secIdx]);
                int nextDiff = Math.abs(n - numlist[j]);

                // 거리 기준 우선
                if (nextDiff < curDiff) {
                    secIdx = j;
                }
                // 거리가 같다면 더 큰 숫자 우선
                else if (nextDiff == curDiff && numlist[j] > numlist[secIdx]) {
                    secIdx = j;
                }
            }

            // 자리 바꾸기
            int temp = numlist[secIdx];
            numlist[secIdx] = numlist[i];
            numlist[i] = temp;
        }
        return numlist;
    }
}

등수 매기기


import java.util.*;

class Solution {
    public int[] solution(int[][] score) {
        int[] answer = new int[score.length];
        for(int i = 0; i < score.length; i++){
            score[i][0] = (score[i][0] + score[i][1]) * 10 / 2;
            score[i][1] = i + 1;
        }
        
        Arrays.sort(score, new Comparator<int[]>(){
           @Override
            public int compare(int[]o1, int[]o2){
                return o2[0] - o1[0];
            }
        });
        int rank = 1;
                
        for(int i = 0; i < score.length; i++){
            answer[score[i][1]-1] = rank;
            int tmpRank = 0;
            while(i+1 < score.length && score[i][0] == score[i+1][0]){
                answer[score[++i][1]-1] = rank;
                tmpRank++;
            }
            rank += tmpRank + 1;
        }
        return answer;
    }
}

옹알이 (1)


class Solution {
    public int solution(String[] babbling) {
        int answer = 0;
        String[] speak = new String[]{"aya","ye","woo","ma"};
        
        for(String s : babbling){
                String bab = s;
            for(String sp : speak){
                bab = bab.replace(sp," ");
                if(bab.trim().isEmpty()){
                    answer++;
                    break;
                }
            }
        }
        return answer;
    }
}

로그인 성공?


class Solution {
    public String solution(String[] id_pw, String[][] db) {
        String answer = "";
        for(String sarr[] : db){
            if(sarr[0].equals(id_pw[0])){
                if(sarr[1].equals(id_pw[1])){
                    return "login";
                }
                return "wrong pw";
            }
        }
        return "fail";
    }
}

 

728x90
반응형