[알고리즘 문제] JAVA

장성욱·2025년 7월 16일

알고리즘문제

목록 보기
1/1

7조각의 피자를 N명이 모두 최소 1조각씩 먹기 위해 몇 판의 피자가 필요한지 구하는 문제

class Solution {
    public int solution(int n) {
        int answer = (int)Math.ceil((double)n / 7);
        // 올림을 하기 위해선 실수여야 하기에 (double)로 
		// 형변환을 해주고, 올림된 실수를 answer는 int 타입
        // 이기에 (int)로 다시 한 번 형변환
        return answer;
    }
}

Math.round : 반올림
Math.ceil : 올림
Math.floor : 내림
ㄴ 모두 실수 타입이여야 함, 정수면 형변환 해주기


시간 당 2배씩 증가하는 세균 n의 t시간 뒤 마릿수

class Solution {
    public int solution(int n, int t) {
        int answer = (int)Math.pow(2, t)*n;
        // 처음 n마리 시간당 2배씩 t 시간 
        return answer;
    }
}

Math.pow(값, 지수) :
값이 2이고 지수가 2라면 2의2승, Math.pow는 double형으로 값을 반환함
따라서 정수형을 원한다면 (int)로 형변환이 필요


배열에서 제일 큰 수와 2번째로 큰 수 곱하기

import java.util.Arrays;
class Solution {
    public int solution(int[] numbers) {
        int answer = 0;
        
        Arrays.sort(numbers);
        answer = numbers[numbers.length-1] * numbers[numbers.length - 2];
        return answer;
    }
}

배열을 오름차순으로 정렬하면 작은 수부터 큰 수 순서대로 정렬이 되는데,
정렬 뒤 마지막 수와 그 전수를 곱해준다.

Arrays.sort(배열 변수) : 오름차순 정렬
ㄴ 사용하려면 import java.util.Arrays 필요함

profile
https://frost-puck-b0f.notion.site/B-2610fdaef71d80c49d1bccdcb575dcb5

0개의 댓글