코딩테스트 연습 기록

이종길·2022년 1월 7일
0

코딩테스트 연습

목록 보기
38/128

2022.01.07 17일차

백준 14241번 (슬라임 합치기)

문제

영선이와 효빈이는 슬라임을 합치는 게임을 하고 있다. 두 사람은 두 슬라임을 골라서 하나로 합쳐야 한다. 게임은 슬라임이 하나 남았을 때 끝난다.

모든 슬라임은 양수 크기를 가지고 있다. 두 슬라임 x와 y를 합쳤을 때, 합친 슬라임의 크기는 x+y가 된다. 또한, 슬라임을 합칠 때 마다 두 사람은 x*y 점수를 얻게 된다.

영선이와 효빈이가 얻을 수 있는 점수의 최댓값을 구하는 프로그램을 작성하시오.

나의 풀이

  1. 순서 상관없이 조건만 만족하면 동일한 값
  2. 곱하는 경우, 더하는 경우, 점수에 추가하는 경우 나눠서 접근
  3. 처음 값은 따로 계산하여 예외 처리
  4. 두번째부터 마지막까지 반복
  5. sum에 처음 값 저장
  6. mul에 곱하는 경우 계산, sum과 입력된 수 곱하기
  7. sum에 입력된 수 더하기
  8. score에 앞서 계산한 mul 더하기
  9. 5 ~ 7 과정 반복
import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        int n = scanner.nextInt();

        int first = scanner.nextInt();
        int sum = first;
        int mul;
        int score = 0;

        for (int i = 1; i < n; i++) {
            int num = scanner.nextInt();
            mul = sum * num;
            sum += num;
            score += mul;
        }

        System.out.println(score);
    }
}

생각하기

profile
Go High

0개의 댓글

관련 채용 정보