2021년 8월 29일 일요일 - 아우 블로그 쓰는거 힘두러...


오늘 올려볼 문제는 11399번 ATM 이라는 문제이다.


사진을 클릭하면 해당 문제로 이동합니다.

백준 문제 사진

오늘도 채점 현황표를 보다가 한 문제 선택해서 가지고왔다!

프로젝트 때문에 알고리즘 할 시간이 점점 줄어드는 느낌..


입력 예제

백준 입력 예제


입력은 딱 봐도 알아볼 수 있는 입력이다.




풀이 및 코드


이 문제는 대부분 사람들이 경험에 의해서 직관적으로 풀이에 대한 감이 올 것이라고 생각된다.


바로 중복적으로 더해지는 숫자를 낮은 수로 정하는 것 즉 오름차순 정렬을 하는 것이다.


문제를 푸는 키포인트가 나왔으니 코드를 봐보자!


풀이코드


import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Arrays;

public class Main {

    public static void main(String[] args) throws NumberFormatException, IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        // 입력 받기
        int n = Integer.parseInt(br.readLine());
        String[] input = br.readLine().split(" ");

        int[] arr = new int[n];

        // int형으로 바꾸어 int배열에 저장하는 과정
        for(int i = 0; i < n; i++)
        {
            arr[i] = Integer.parseInt(input[i]);
        }

        // 오름차수 정렬
        Arrays.sort(arr);

        // 결과값 저장 변수
        int result = 0;

        // 각 자리의 수가 더해지는 빈도는  해당 자리 수 * (전체 길이 - 해당 자리 수의 인덱스) 이다.
        for(int i = 0; i < n; i++)
        {
            result += arr[i] * (n - i);
        }

        // 출력하기
        bw.write(result + "\n");
        bw.flush();

    }

}



제출 화면

백준 문제 맞았습니다


오늘은 프로젝트 때문에 바빠서 밀린 숙제하듯이 쉬운 문제를 가지고 왔다...


대부분 사람들은 그냥 풀 수 있겠지만 자라나는 코린이 분들을 위해서 적는 것이라고 합리화를 해본다...

+ Recent posts