programmers Day4

Hwani·2024년 5월 9일

문제 - 피자 나눠 먹기(1)

풀이

class Solution {
    public int solution(int n) {
        int answer = 0;

        if (n >= 1 && n <= 100) {
            if (n % 7 == 0) {
                answer = n / 7; 
            }
            else {
                answer = n / 7 + 1;
            }
        }
        return answer;
    }
}

문제 - 피자 나눠 먹기(2)

풀이

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

설명

  • n명이 모두 동등하게 피자를 먹어야한다.
  • 1판에 6조각이므로 6 * n 해서 나머지가 0이 될 때까지 for문 반복
  • 나머지가 0이 되는 숫자가 최소로 필요한 피자 판 수가 된다.

문제 - 피자 나눠 먹기(3)

풀이

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

설명

  • 피자를 2~10조각 까지 원하는 조각 수로 잘라준다.
  • n / slice 해서 나머지가 0 이라면 모두가 1조각 이상 먹게된다.
  • 나머지가 있다면 n / slice 한 값에서 +1을 하면 모두 1조각 이상 먹게된다.

문제 - 배열의 평균값

풀이

import java.util.*;

class Solution {
    public double solution(int[] numbers) {
        OptionalDouble average = Arrays.stream(numbers).average();
        return average.orElse(0.0);
    }
}

설명

  • Arrays.stream(numbers).average()는 number 배열의 평균값을 계산한다.
  • OptionalDouble 타입은 값이 존재하거나 존재하지 않거나 이런 경우를 처리하기위해 사용한다.
  • average.orElse(0.0)는 OptionalDouble에 값이 존재하면 그 값을 반환하고, 값이 존재하지 않으면 기본값으로 0.0을 반환한다.
profile
개발자될거야

0개의 댓글