백준 8370번(Plane) 문제풀이

YeonghooAhn·2021년 10월 28일
0

알고리즘

목록 보기
1/5

문제 내용은 이렇습니다. 바이트랜드 항공(Byteland Airlines)은 최근 새로운 비행기 모델로 항공기 함대를 확장했습니다.

새로운 인수는 비즈니스 클래스에 n1열의 좌석이 있고 이코노미 클래스에 n2열의 좌석이 있습니다. 비즈니스 클래스에

서는 각 열에 k1개의 좌석이 있고 이코노미 클래스에서는 각 열에 k2개의 좌석이 있습니다.

비행기에서 사용 가능한 좌석에 대한 정보를 읽고, 해당 비행기에서 사용할 수 있는 모든 좌석의 합계를 계산하고,

결과를 씁니다.

입력은 순서대로 n1, k1, n2, k2가 주어집니다.

즉, 비즈니스 클래스에는 n1열이 존재하고 각 열마다 k1개의 좌석이 존재합니다.

마찬가지로 이코노미 클래스에는 n2열이 존재하고 각 열마다 k2개의 좌석이 존재합니다.

단순히 n1,k1,n2,k2를 순서대로 스캐너 객체로 입력받고 각 열마다 존재하는 k1개의 좌석을

더해주면 되는 문제입니다. 열이므로 열만큼 반복하는 for문을 돌리며 sum 변수에 좌석의 개수 k1,k2를 더해줍니다.

import java.util.*;
public class Main {
    static int solution (int n1, int k1, int n2, int k2) {
        int answer = 0;
        int sum = 0;
        for (int i = 0; i < n1; i++) {
            sum += k1;
        }
        for (int i = 0; i < n2; i++) {
            sum += k2;
        }
        answer = sum;

        return answer;

    }
    public static void main(String[] args) {
        Scanner Sc = new Scanner(System.in);
        int n1 = Sc.nextInt();
        int k1 = Sc.nextInt();
        int n2 = Sc.nextInt();
        int k2 = Sc.nextInt();
        System.out.println(solution(n1,k1,n2,k2));

    }
}

이 문제는 프로그래머스 스타일로 solution 메서드를 따로 만들어서 풀었고, println으로 바로 출력하기 위해

static 클래스 메서드로 생성하였습니다. solution 메서드는 n1,k1,n2,k2를 순서대로 파라미터로 받습니다.

그 후 리턴값 answer를 0으로 초기화하고 모든 좌석수를 더할 변수 sum을 선언한 후 이코노미 좌석 수를

for문을 통해 다 더해주고, 마찬가지로 비즈니스 좌석 수도 동일하게 더해줍니다. 그 후 answer 변수에 sum 값을

넘겨준 후 answer를 리턴해주면 됩니다! 굳이 answer 선언 할 필요없이 바로 sum을 리턴해줘도 됩니다.

프로그래머스 스타일처럼 풀려고 하다보니 쓸데없는 메모리 공간 하나를 더 선언했네요..ㅎ

profile
책 중독 컴공과

0개의 댓글