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();
}
}
제출 화면
오늘은 프로젝트 때문에 바빠서 밀린 숙제하듯이 쉬운 문제를 가지고 왔다...
대부분 사람들은 그냥 풀 수 있겠지만 자라나는 코린이 분들을 위해서 적는 것이라고 합리화를 해본다...
'백준 문제 풀이' 카테고리의 다른 글
| [BOJ / 백준] 백준 3151번 문제를 풀어보았다. (ft. Java) (1) | 2021.09.04 |
|---|---|
| [BOJ / 백준] 백준 1120번 문제를 풀어보았다. (ft. Java) (0) | 2021.08.30 |
| [BOJ / 백준] 백준 2294번 문제를 풀어보았다. (ft. Java) (0) | 2021.08.21 |
| [BOJ / 백준] 백준 2799번 문제를 풀어보았다. (ft. Java) (0) | 2021.08.14 |
| [BOJ / 백준] 백준 2493번 문제를 풀어보았다. (ft. Java) (0) | 2021.08.02 |