달마루
기획자에서 개발자로
달마루
전체 방문자
오늘
어제
  • 분류 전체보기 (334)
    • 기획 이야기 (3)
    • 개발자로 전향한 이유 (1)
    • Github Address (1)
    • 개발자, 그 여정 (11)
      • 기초특강 (4)
      • 국비학원 선정 (4)
      • BitCamp_수업내용 (1)
      • 학원 프로젝트 후기 (1)
      • 정보처리기사 (1)
      • 개발 이야기 (0)
    • 개념 창고 (126)
      • JAVA (50)
      • CS (1)
      • Database (27)
      • NetWork (2)
      • 자료 구조 (2)
      • React (8)
      • Spring (3)
      • JPA (1)
      • HTML & CSS (18)
      • JS (3)
    • algorithm (186)
      • 백준 (161)
      • 프로그래머스 (23)
    • 사는 이야기 (0)

블로그 메뉴

  • Github
  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • BRONZE
  • Bronze V
  • MySQL
  • SQL
  • 자바
  • Bronze III
  • 백준알고리즘
  • java
  • SQL고득점Kit
  • react
  • math
  • 프로그래머스
  • java algorithm
  • 알고리즘
  • sql 문제풀이
  • BOJ algorithm
  • Bronze IV
  • 혼공SQL
  • 알고리즘풀이
  • 백준문제풀이
  • 백준
  • 문제풀이
  • 혼공MySQL
  • Algorithm
  • HTML
  • programmers
  • Scanner
  • 혼자공부하는SQL
  • BOJ
  • select

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
달마루

기획자에서 개발자로

[백준] 보물 - 1026 Java[자바]
algorithm/백준

[백준] 보물 - 1026 Java[자바]

2023. 2. 24. 12:53

[Silver IV] 보물 - 1026

문제 링크

 

1026번: 보물

첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거

www.acmicpc.net

성능 요약

메모리: 17888 KB, 시간: 220 ms

분류

그리디 알고리즘(greedy), 수학(math), 정렬(sorting)

문제 설명

옛날 옛적에 수학이 항상 큰 골칫거리였던 나라가 있었다. 이 나라의 국왕 김지민은 다음과 같은 문제를 내고 큰 상금을 걸었다.

길이가 N인 정수 배열 A와 B가 있다. 다음과 같이 함수 S를 정의하자.

S = A[0] × B[0] + ... + A[N-1] × B[N-1]

S의 값을 가장 작게 만들기 위해 A의 수를 재배열하자. 단, B에 있는 수는 재배열하면 안 된다.

S의 최솟값을 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거나 같은 음이 아닌 정수이다.

출력

첫째 줄에 S의 최솟값을 출력한다.


답 : 입력받은 두 배열을 담아 정렬하고,
arr1과 arr2의 인덱스에 대응하는 원소들을 곱해 s를 계산한다. 

import java.util.Arrays;
import java.util.Scanner;

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

            int n = sc.nextInt();
            int[] arr1 = new int[n];
            int[] arr2 = new int[n];

            for (int i = 0; i < n; i++) {
                arr1[i] = sc.nextInt();
            }

            for (int i = 0; i < n; i++) {
                arr2[i] = sc.nextInt();
            }
            Arrays.sort(arr1);
            Arrays.sort(arr2);

            int s = 0;
            for (int i = 0; i < n; i++) {
                s += arr1[i] * arr2[n - i - 1];
            }
            System.out.println(s);
            sc.close();
        }
    }
저작자표시 비영리 변경금지 (새창열림)

'algorithm > 백준' 카테고리의 다른 글

[백준] 부호 - 1247 Java[자바]  (0) 2023.02.27
[백준] 나누기 - 1075 Java[자바]  (0) 2023.02.25
[백준] 타임카드 - 5575 Java[자바]  (0) 2023.02.23
[백준] 고려대는 사랑입니다 - 11942 Java[자바]  (0) 2023.02.22
[백준] 콜센터 - 5339 Java[자바]  (0) 2023.02.21
    'algorithm/백준' 카테고리의 다른 글
    • [백준] 부호 - 1247 Java[자바]
    • [백준] 나누기 - 1075 Java[자바]
    • [백준] 타임카드 - 5575 Java[자바]
    • [백준] 고려대는 사랑입니다 - 11942 Java[자바]
    달마루
    달마루
    항상 어제보다 좋은 코드를 지향합니다. https://github.com/LimDongHyun99

    티스토리툴바