알고리즘 문제풀이

백준 - 보물 1026 ( Python)

2023. 2. 25. 21:24
목차
  1. 문제설명
  2.  
  3. 입력
  4.  
  5. 출력
  6.  
  7. 예제입력 / 예제출력
  8.  
  9. 문제이해 및 코드정리
  10.  
  11. 코드
반응형

 

[Silver IV] 보물 - 1026
https://www.acmicpc.net/problem/1026

 

문제설명

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

길이가 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의 최솟값을 출력한다.

 

예제입력 / 예제출력

 

문제이해 및 코드정리

s가 최소값을 구하는 문제이다.
주의할 점이 있다면 A의 배열은 바꿀수 있지만, B의 배열은 바꿀 수 없다고 명시된점이다.
최소값을 만드는 법은 A에서는 가장작은 값을 뽑고, B에서는 가장 큰 값을 뽑아 각각 계산을 진행하는 법이다.

 

코드로는 A배열은 sort 함수를 사용하여 정렬을 시켜줬고,  B배열에서는 가장 큰값을 구하는 max, max의 위치를 알수있는 index함수 B배열에서 해당값을 빼줄 pop함수를 사용하여 A배열과 계산을 진행해주었다.

 

코드

import sys

N = int(sys.stdin.readline())

A = list(map(int,sys.stdin.readline().split()))
B = list(map(int,sys.stdin.readline().split()))

ans = 0 
A.sort()

# A의 가장 작은값을 B의 가장 큰값과 곱해주는것이 가장 최소의 값을 만듬
for i in range(N):
    ans += A[i] * B.pop(B.index(max(B)))
print(ans)
반응형

'알고리즘 문제풀이' 카테고리의 다른 글

백준 - 큐 10845(Python)  (0) 2023.02.27
백준 - 스택 10828(Python)  (0) 2023.02.27
백준 - 국영수 10825 (Python)  (0) 2023.02.27
백준 - 차이를 최대로 10819(Python)  (0) 2023.02.26
백준 - 제로 10773 (Python)  (0) 2023.02.26
  1. 문제설명
  2.  
  3. 입력
  4.  
  5. 출력
  6.  
  7. 예제입력 / 예제출력
  8.  
  9. 문제이해 및 코드정리
  10.  
  11. 코드
'알고리즘 문제풀이' 카테고리의 다른 글
  • 백준 - 스택 10828(Python)
  • 백준 - 국영수 10825 (Python)
  • 백준 - 차이를 최대로 10819(Python)
  • 백준 - 제로 10773 (Python)
coryne
coryne
반응형
coryne
coryne의 정리노트
coryne
전체
오늘
어제
  • 분류 전체보기 (56)
    • python (2)
    • Web programing (1)
    • Linux (3)
    • Deep Learning (0)
    • 기타 (0)
    • 알고리즘 문제풀이 (49)
    • 빅데이터분석기사 (0)
    • 알고리즘 이론 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 데이크스트라
  • 깊이 우선 탐색
  • 수학
  • 소수 판정
  • 그리디 알고리즘
  • 브루트포스 알고리즘
  • 빅데이터분석기사 실기
  • 백준
  • 정수론
  • EduAtoZ
  • 정렬
  • machine_learning
  • 그래프 이론
  • 그래프 탐색
  • 빅데이터분석기사
  • 공공데이터일경험수련생
  • 큐
  • 다이나믹 프로그래밍
  • 자료 구조(data_structures)
  • 너비 우선 탐색
  • Python
  • 자료 구조
  • pandas
  • 스택
  • 문자열
  • 자료구조
  • 출처 : eduatoz
  • 우선순위 큐
  • 구현
  • 플로이드-워셜

최근 댓글

최근 글

hELLO · Designed By 정상우.
coryne
백준 - 보물 1026 ( Python)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.