본문 바로가기

혼자 코딩 공부하기/프로그래머스 코딩테스트

231211 프로그래머스 코딩테스트

날짜 비교하기

체크해야할 부분, for 문으로 작은 숫자로만 비교하게 되면

2024.01.31 / 2023.02.01 처럼 연,월,일 중 하나만 비교하게 되어

채점 시 오답이 나옴

public int solution(int[] date1, int[] date2) {
        int answer = 0;
        if (date1[0] < date2[0]) { // 연도 비교
            answer = 1;
        }
        if (date1[1] < date2[1]) { // 월 비교
            answer = 1;
            if (date1[0] > date2[0]) { // 월 비교하였으나, 연도를 다시 한번 비교
                answer = 0;
            }
        }
        if (date1[2] < date2[2]) { // 일 비교
            answer = 1;
            if (date1[0] > date2[0]){ // 연도 추가 비교
                answer = 0;
            } else if (date1[1] > date2[1]) { // 월 추가 비교
                answer = 0;
            }
        }
        return answer;
    }

 

글자 지우기

public String solution(String my_string, int[] indices) {
        String answer = "";
        A :
        for(int i = 0; i < my_string.length(); i++) { // 해당 반복문 이름 A 로 지정
            for(int j = 0; j < indices.length;j++) {
                if (i == indices[j]) { // i 값이 indices 배열의 값과 같아지면
                    continue A; // A 반복문을 처음부터 실행, 문자열 추가는 스킵
                }
            }
                answer += my_string.charAt(i);
        }
        return answer;
    }

 

1로 만들기

public int solution(int[] num_list) {
        int answer = 0;
        for(int j = 0;j < num_list.length; j++) {
            while (num_list[j] > 1) {
            num_list[j] /= 2;
            answer++;
            }
        }
        return answer;
    }

 

문자열이 몇 번 등장하는지 세기

public int solution(String myString, String pat) {
        int answer = 0;
        for (int i = pat.length() - 1; i < myString.length(); i++){
            if (myString.substring(i - pat.length() + 1 , i + 1).contains(pat)){
                answer++;
            }
        }
        return answer;
    }