문제 풀이 (JAVA)

import java.util.*;
class Solution {
    public int solution(int[] d, int budget) {
        int answer = 0; // 최대 지원 가능 부서 변수
        int sum=0; // 총합 변수
        Arrays.sort(d); // 부서별 신청 금액을 오름차순으로 정렬
        
        for(int i=0; i<d.length; i++){
            sum+=d[i]; // 작은 숫자부터 정렬된 금액을 합한다.
            if(sum>budget){ // 예산을 초과했을 경우
                break; // 로직 종료
            }
            answer++; // 예산을 초과하지 않았을 경우 지원가능 부서 1 증가
        }
        return answer; // 지원가능 부서 리턴
    }
}

주요 핵심 포인트

1. Arrays.sort 함수를 참조하여 예산을 오름차순으로 정렬하였다.

2. 예산이 초과했을 경우 종료하고, 예산을 초과하지 않는다면 answer 카운트를 1씩 증가 시켰다.

'프로그래머스(JAVA)' 카테고리의 다른 글

약수의 개수와 덧셈  (0) 2022.05.21
3진법 뒤집기  (0) 2022.05.21
두 개 뽑아서 더하기  (0) 2022.05.21
2016년  (0) 2022.05.21
최소직사각형  (0) 2022.04.24

문제 풀이 (JAVA)

import java.util.*;
class Solution {
    public int[] solution(int[] numbers) {
        List<Integer> answer = new ArrayList<Integer>(); // 숫자를 저장할 리스트 선언
        int sum=0; // 두개의 숫자 합을 저장할 변수 선언
        for (int i=0; i<numbers.length; i++){ // 첫번째 변수부터
            for( int j=0; j<numbers.length; j++){  // 다음 숫자 배열 변수끼리 순차적 검색
               if(i != j){ // 같은 숫자 배열이 아닐 경우
                   sum = numbers[i]+numbers[j]; // 두 개의 숫자 배열 합 저장
                   if(answer.contains(sum) != true){ // 리스트에 해당 숫자가 존재하지 않는다면
                       answer.add(sum); // 리스트에 저장
                   }
               }
            }
        }
        Collections.sort(answer); // 리스트 오름차순 정렬
        int k=0;
        int [] result= new int[answer.size()]; // 결과를 출력할 배열 변수 선언
        for(int temp : answer){
            result[k++]= temp; // 리스트에 저장된 변수를 숫자 배열에 옮긴다.
        }
        return result;
    }
}

주요 핵심 포인트

0. 첫번째 숫자부터 순차적으로 검색하여 합을 계산하였다.

1. List의 contains 함수를 사용하여 중복 값이 존재하지 않을 경우 리스트에 저장하였다.

2. List의 Collections.sort 함수를 사용하여 리스트를 오름차순으로 정렬하였다.

3. 정렬된 리스트의 값을 배열로 옮겨 담아 출력하였다.

'프로그래머스(JAVA)' 카테고리의 다른 글

3진법 뒤집기  (0) 2022.05.21
예산  (0) 2022.05.21
2016년  (0) 2022.05.21
최소직사각형  (0) 2022.04.24
나머지가 1이 되는 수 찾기  (0) 2022.04.24

문제 풀이 (JAVA)

class Solution {
    public String solution(int a, int b) {
        String answer = "";
        int totaldays=0;
        int[] months = { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; // 매월 마지막일
        String[] days = { "SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT" }; // 요일 변수
        for(int i=0; i<a-1; i++){
            totaldays+=months[i]; // 요일수 계산
        }
        
        totaldays+=b-1; // 1월 1일을 제외한 총 날짜 계산
        
        answer=days[(totaldays+5)%7];
        // 1월1일이 금요일이므로 일요일을 기준으로 5일을 더한 수를 나누면 금요일을 기준으로 날짜를 계산하게 된다.
        return answer;
    }
}

주요 핵심 포인트

1.  윤년의 매월 마지막 일이 몇일인지를 알아야 한다.

2. 요일을 계산하기 위한 요일변수 배열을 선언한다.

3. 1월 1일을 제외한 총 일수를 계산한다.

4. 1월 1일이 금요일이므로 초기 변수를 금요일로 하기 위해 +5를 하여 7로 나머지 연산을 하였다.

'프로그래머스(JAVA)' 카테고리의 다른 글

예산  (0) 2022.05.21
두 개 뽑아서 더하기  (0) 2022.05.21
최소직사각형  (0) 2022.04.24
나머지가 1이 되는 수 찾기  (0) 2022.04.24
부족한 금액 계산하기  (0) 2022.04.24

문제 풀이 (JAVA)

import java.util.*;
class Solution {
    public int solution(int[][] sizes) {
        int answer = 0;
        List<Integer> wlist=new ArrayList<Integer>(); // 가로길이 리스트 변수
        List<Integer> hlist=new ArrayList<Integer>(); // 세로길이 리스트 변수
        for(int i=0; i<sizes.length; i++){
            if(sizes[i][0] > sizes[i][1]){ // 배열의 가로,세로 가로가 더 클경우
                wlist.add(sizes[i][0]);   // 가로 = 큰 숫자 저장
                hlist.add(sizes[i][1]); // 세로 = 작은 숫자 저장
            }else{ // 세로의 길이가 더 클경우
                wlist.add(sizes[i][1]); // 가로 = 세로 숫자 (큰 숫자)
                hlist.add(sizes[i][0]); // 세로 = 가로 숫자(작은 숫자)
            }
        }
        Collections.sort(wlist); // 큰숫자끼리의 리스트 정렬
        Collections.sort(hlist); // 작은숫자끼리의 리스트 정렬
        int w= wlist.get(wlist.size()-1); // 큰 숫자 중 가장 큰 숫자 = 가로 저장
        int h=hlist.get(hlist.size()-1);  // 작은 숫자 중 가장 큰 숫자 = 세로 저장
        answer = w*h;
        return answer;
    }
}

주요 핵심 포인트

1.  배열끼리 비교하여 큰 숫자 리스트, 작은 숫자 리스트를 저장한다.

2. 정렬하여 큰 숫자 중 가장 큰 숫자가 가로의 길이가 될것이며, 정렬하여 작은 숫자 중 가장 큰 숫자가 세로의 길이가 된다.

'프로그래머스(JAVA)' 카테고리의 다른 글

두 개 뽑아서 더하기  (0) 2022.05.21
2016년  (0) 2022.05.21
나머지가 1이 되는 수 찾기  (0) 2022.04.24
부족한 금액 계산하기  (0) 2022.04.24
[1차] 비밀지도  (0) 2022.04.24

+ Recent posts