728x90
https://www.acmicpc.net/problem/1026
<조건>
- 입력 2개 리스트의 개수 N
- 입력 A의 리스트 N개 입력
- 입력 B의 리스트 N개 입력
- 출력 함수의 식이 가장 적게 나오는 A의 순서 (단, B는 재정렬 하면 안 됨)
#입력
N=int(input())
A=list(map(int, input().split()))
B=list(map(int, input().split()))
A.sort() #정렬
#함수 S 구현
result=0
for i in range(N):
b=max(B)
result+=A[i]*b
B.remove(b)
#출력
print(result)
굉장히 간단한 알고리즘이다. 처음에는 다음과 같이 풀면서 대강의 알고리즘을 생각했다.
그리고 굳이 정렬을 하지 않아도 풀 수 있는 문제.
파이썬 리스트 문법을 많이 까먹었다.
- 정렬
A.sort() #기본 오름차순
A.sort(reverse=True) #기본 내림차순
- 원소 추가/제거하기
추가하기 | 제거하기 |
a.append(값) | a.remove(값) |
a.extend(리스트) | a.pop(인덱스) 인덱스 지정을 안 해주면 맨 뒤 원소가 제거됨 |
a.insert(인덱스, 값) | del a[인덱스] |
- 가장 큰 수/작은 수 찾기
#내가 실수한 코드
b=B.max()
#원래 코드
b=max(B)
- .은 메소드로서 특정 객체에 적용되는 함수이다.(참고로 파이썬에서는 모든 것이 객체다.)
- ()는 내장 함수로서 python 자체에서 제공하는 함수이다.
주피터 환경에서는 . + tap을 하면 해당 객체의 내장함수가 뜨니까 실험해보면서 익숙해지면 될 것 같다.
'python > 백준_프로그래머스' 카테고리의 다른 글
[백준 1100번] 하얀 칸 python과 eval 함수 (4) | 2022.02.04 |
---|---|
[백준 2039번] 일곱 난쟁이 python과 combinations (0) | 2022.02.03 |
[백준 11047번] 동전0(그리디 알고리즘) python (0) | 2022.01.05 |
[백준 1920번] 수 찾기(이진 탐색) python (0) | 2021.12.30 |
[백준 2750번] 수 정렬하기 python (0) | 2021.12.28 |