난이도: 중하 

날짜에 관해 조금이라도 다뤄봤다면 해결가능한 문제이다.

 

 

class Solution {
    public String solution(int a, int b) {
        String answer = "";
        int [] date = {31,29,31,30,31,30,31,31,30,31,30,31};
        String [] day = {"FRI","SAT","SUN","MON","TUE","WED","THU"};
        
        int selected = 0;// 5월 24일을 며칠인지 숫자로 바꾸는 작업
        for(int i = 0; i < a-1; i++){ // 해당 달의 date는 더하면 안되기 때문에 a-1까지
            selected += date[i];
        }
        
        selected += b-1;//index가 0에서 시작되니까 1씩 빼준다. 1월 1일이 하루가 지난날이 아니기 때문이다
        answer = day[selected%7];
        
        
        return answer;
    }
}

 

 

https://programmers.co.kr/learn/courses/30/lessons/12901

'알고리즘문제 > Programmers' 카테고리의 다른 글

수박수박~  (0) 2022.07.15

1.

수박수박수박수?

코드

class Solution {
    public String solution(int n) {
        String answer = "";
        
        for(int i=1;i <= n; i++){
            if(i%2 == 1 ){
                answer += "수";
            }
            else{
                answer += "박";
            }
        }
        return answer;
    }
}

홀수번째 글자들은 모두 "수"

짝수번째 글자들은 모두 "박"

입력받은 n까지 반복문을 돌면서 수,박을 answer에 삽입하면 해결가능

비효율적이다.

string builder 사용 해보기

2.

완주하지 못한 선수

import java.util.Arrays;

class Solution {
    public String solution(String[] participant, String[] completion) {
       String answer = "";

        Arrays.sort(participant);
        Arrays.sort(completion);

        for(int i=0; i<participant.length; i++) {
            if(i == completion.length) {
                answer = participant[i];
                break;
            }
            if(!participant[i].equals(completion[i])) {
                answer = participant[i];
                break;
            }
        }

        return answer;
    }
}

 

3.

2016

class Solution {
    public String solution(int a, int b) {
       
        String[] days = {"FRI","SAT","SUN","MON","TUE","WED","THU"};
        int[] months = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
        
        int sumDate = 0;
        
        for(int i=0; i<a-1; i++){
            sumDate += months[i];
        }
        sumDate += b -1;
        
        
        
        return days[sumDate % 7];
    }
}

 

 

4.

나누어 떨어지는 숫자 배열

import java.util.Arrays;
class Solution {
    public int[] solution(int[] arr, int divisor) {
        int cnt=0;
        for(int i=0; i<arr.length; i++){
            if(arr[i]%divisor==0) cnt++;
        }

        if(cnt==0){
            int[] answer={-1};
            return answer;
        }
        int[] answer=new int[cnt];
        for(int i=0,j=0; i<arr.length; i++){
            if(arr[i]%divisor==0) answer[j++]=arr[i];
        }

        Arrays.sort(answer);
        return answer;
    }
}

'알고리즘문제 > Programmers' 카테고리의 다른 글

[프로그래머스] 2016  (0) 2022.07.23

+ Recent posts