반응형
Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
Tags
- level2
- level4
- Python
- 운전면허
- 코테
- delegate
- MySQL
- 쿼리
- SQL
- c#
- 자바
- 닫기버튼
- 1931번
- Spring Boot
- 프로그래머스
- WPF
- programmers
- 스프링부트
- WSL
- 코딩테스트
- 백준
- springboot
- Java
- 씨샵
- JPA
- 3일컷
- MVVM
- level3
- 일반화
- 보통2종
Archives
- Today
- Total
욱꾸미의 주꾸미 발
[코딩테스트] 백준(BAEKJOON) - 보물(Java, 1026번) 본문
반응형
안녕하세요~
오늘은 주말인 만큼 열심히 코테 준비를 해보고자 합니다.
요즘 Greedy관련 문제들을 풀어보는데 아직은 초보 단계가 그런가 술술풀리네요~
자신감을 얻어가고 있습니다.
오늘 이번에 풀어볼 문제는 보물 문제입니다.
원리는 간단하니 같이 만나~ 보시죠!
https://www.acmicpc.net/problem/1026
1026번: 보물
첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거
www.acmicpc.net
문제링크입니다~
그러면 제가 작성한 풀이를 만나보시죠~
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.PriorityQueue;
import java.util.Scanner;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));
int N=Integer.parseInt(bf.readLine());
List<Integer> A=new ArrayList<>();
List<Integer> B=new ArrayList<>();
String[] lineA=bf.readLine().split(" ");
String[] lineB=bf.readLine().split(" ");
for(int i=0;i<N;i++)
{
A.add(Integer.parseInt(lineA[i]));
B.add(Integer.parseInt(lineB[i]));
}
Collections.sort(A);
Collections.sort(B, Collections.reverseOrder());
int sum=0;
for(int i=0;i<N;i++)
{
sum=sum+(A.get(i)*B.get(i));
}
System.out.println(sum);
}
}
네~ 문제입니다.
어떠신가요? 코드만 보고 감이 오실까요?
A List와 B List의 각각 원소를 대칭 시켜서 곱하고 최소값을 만들어야합니다~
최. 소. 값을 만들려면?!
가장 작은 수에 가장 큰 수를 곱해서 수가 커지지 않게 하자!라는 원리를 갖고 풀어보시면 되겠습니다~
그렇기에 A List에는 Collections.sort를 이용해서 오름차순~
그리고 B List에는 Collections.sort(Collections.reverseOrder())를 이용해 내림차순~으로 정렬했습니다.
그러면 A의 가장 작은 원소와 B의 가장 큰 원소가 곱해지고
A의 가장 큰 원소가 B의 가장 작은 원소와 곱해지겠죠?
이렇게 작성해주시면 되겠~습니다.
감사합니다. 😊😊
반응형
'코딩테스트 > 백준' 카테고리의 다른 글
| [코딩테스트] 백준(BAEKJOON) - 로프(Java, 2217번) (0) | 2023.04.21 |
|---|---|
| [코딩테스트] 백준(BAEKJOON) - 거스름돈(Java, 5585번) (0) | 2023.04.15 |
| [코딩테스트] 백준(BAEKJOON) - 잃어버린 괄호(Java, 1541번) (0) | 2023.04.13 |
| [코딩테스트] 백준(BAEKJOON) - 회의실 배정(Java, 1931번) (0) | 2023.04.13 |
| [코딩테스트] 백준(BAEKJOON) - 동전 0(Java, 11047번) (0) | 2023.04.11 |