728x90
https://www.acmicpc.net/problem/1026
✔️문제 분석
길이가 N인 정수배열 A,B가 주어질 때,
S = A[0] × B[0] + ... + A[N-1] × B[N-1]
S 값이 최솟값이 되도록 출력
❗코드 분석
A는 오름차순, B는 내림차순으로 정렬 후 곱셈-> B는 재배열 불가능 하므로 이 방법으로 안됨
a는 sort 정렬을 해주어 순서대로 곱셈 b는 pop을 이용해 최댓값부터 뽑아서 서로 곱함
💫 코드
import sys
input = sys.stdin.readline
n = int(input())
a = list(map(int, input().split()))
b = list(map(int, input().split()))
answer = 0
a.sort()
for i in range(n):
x = a[i]
y = b.pop(b.index(max(b)))
answer += x * y
print(answer)
🔴
- input 값 입력 함수 비교
n = int(input())
vs
import sys
a = int(sys.stdin.readline())
맨 첫줄 test case를 입력 받을때는 input()을 사용해도 무방하나
반복문으로 여러줄 입력받는 상황에선 sys.stdin.readline() 을 사용해야 시간초과가 발생하지 않는다.
- 문자열.split() 함수
s = "a b c d e f g"
print(f's : {s}')
r = s.split()
print(f's.split() : {r}')
|
[ 결과값 ]
s : a b c d e f g
s.split() : ['a', 'b', 'c', 'd', 'e', 'f', 'g']
문자열을 일정한 규칙대로 잘라서 리스트로 만들어주는 함수
'Python > 백준' 카테고리의 다른 글
#15 [python] 2457번: 공주님의 정원 (0) | 2023.10.22 |
---|---|
#14 [python] 11399번: ATM (0) | 2023.10.21 |
#12 [python] 2217번: 로프 (0) | 2023.10.19 |
#11 [python] 1931번: 회의실 배정 (0) | 2023.10.19 |
#10 [python] 11047번 동전 0 (0) | 2023.10.18 |