알고리즘

[Java] 프로그래머스 코딩테스트 입문 Day 4

하늘☁️ 2022. 12. 20. 21:18
어제 프로그래머스 코테를 안풀었기 때문에 오늘은 이틀치를 풀어보려고 한다.
사용언어 : Java
난이도 : Lv.0

 

1. 피자 나눠 먹기 (1)

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제 설명

머쓱이네 피자가게는 피자를 일곱 조각으로 잘라 줍니다. 피자를 나눠먹을 사람의 수 n이 주어질 때, 모든 사람이 피자를 한 조각 이상 먹기 위해 필요한 피자의 수를 return 하는 함수를 완성해보세요.

 

제한사항

  • 1 <= n <= 100

입출력 예

 

입출력 예 설명

입출력 예 #1

  • 7명이 최소 한 조각씩 먹기 위해서 최소 1판이 필요합니다.

입출력 예 #2

  • 1명은 최소 한 조각을 먹기 위해 1판이 필요합니다.

입출력 예 #3

  • 15명이 최소 한 조각씩 먹기 위해서 최소 3판이 필요합니다.

풀이

class Solution {
    public int solution(int n) {
        
        return (n % 7 == 0) ? n / 7 : n / 7 + 1;
    }
}

 

 


2. 피자 나눠 먹기 (2)

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제 설명

머쓱이네 피자가게는 피자를 여섯 조각으로 잘라 줍니다. 피자를 나눠먹을 사람의 수 n이 매개변수로 주어질 때, n명이 주문한 피자를 남기지 않고 모두 같은 수의 피자 조각을 먹어야 한다면 최소 몇 판을 시켜야 하는지를 return 하도록 함수를 완성해보세요.

 

제한사항

  • 1 <= n <= 100

입출력 예

 

입출력 예 설명

입출력 예 #1

  • 6명이 모두 같은 양을 먹기 위해 한 판을 시켜야 피자가 6조각으로 모두 한 조각씩 먹을 수 있습니다.

입출력 예 #2

  • 10명이 모두 같은 양을 먹기 위해 최소 5판을 시켜야 피자가 30조각으로 모두 세 조각씩 먹을 수 있습니다.

입출력 예 #3

  • 4명이 모두 같은 양을 먹기 위해 최소 2판을 시키면 피자가 12조각으로 모두 세 조각씩 먹을 수 있습니다.

풀이

class Solution {
    public int solution(int n) {
        int answer = 0;
        
        for (int i = 1; i <= n; i++) {
            if ((6*i) % n == 0) {
                answer = i;
                break;
            }
        }
        
        return answer;
    }
}

 

 


3. 피자 나눠 먹기 (3)

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제 설명

머쓱이네 피자가게는 피자를 두 조각에서 열 조각까지 원하는 조각 수로 잘라줍니다. 피자 조각 수 slice와 피자를 먹는 사람의 수 n이 매개변수로 주어질 때, n명의 사람이 최소 한 조각 이상 피자를 먹으려면 최소 몇 판의 피자를 시켜야 하는지를 return 하도록 soultion 함수를 완성해보세요.

 

제한사항

  • 2 <= slice <= 10
  • 1 <= n <= 100

입출력 예

 

입출력 예 설명

입출력 예 #1

  • 10명이 7조각으로 자른 피자를 한 조각 이상씩 먹으려면 최소 2판을 시켜야 합니다.

입출력 예 #2

  • 12명이 4조각으로 자른 피자를 한 조각 이상씩 먹으려면 최소 3판을 시켜야 합니다.

풀이

class Solution {
    public int solution(int slice, int n) {
    
        return (n % slice == 0) ? n/slice : n/slice + 1;
    }
}

 

 


4. 배열의 평균값

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제 설명

정수 배열 numbers가 매개변수로 주어집니다. numbers의 원소의 평균값을 return하도록 solution 함수를 완성해주세요.

 

제한사항

  • 0 <= numbers의 원소 <= 1,000
  • 1 <= numbers의 길이 <= 100
  • 정답의 소수 부분이 .0 또는 .5인 경우만 입력으로 주어집니다.

입출력 예

 

입출력 예 설명

입출력 예 #1

  • numbers의 원소들의 평균 값은 5.5입니다.

입출력 예 #2

  • numbers의 원소들의 평균 값은 94.0입니다.

풀이

class Solution {
    public double solution(int[] numbers) {
        double answer = 0;
        int sum = 0;

        for (int i : numbers) {
            sum += i;
        }

        answer = (double)sum / numbers.length;
        
        return answer;
    }
}

 

 


후기

Day3 보다 Day 4가 더 쉬웠던 것 같다. 뭔가 특별히 계산해야 되는 문제도 없었고 바로바로 계산해서 리턴해주면 되는 문제들이라 금방 풀었다! 내일두 화이팅 하자잉 😖