초기 해결 코드
# 정수의 길이
N = int(input())
# A 배열
A = list(map(int,input().split()))
# B 배열
B = list(map(int,input().split()))
# 정렬
A.sort()
B.sort(reverse=True)
# 결과
res = 0
for q in range(N):
res += A[q] * B[q]
print(res)
추가 해결 코드
N = int(input())
A = list(map(int,input().split()))
B = list(map(int,input().split()))
res = 0
# 최소 최대값 찾은 후 해당 값 제거
# 다음에 같은 값 찾지 않기 위함
for q in range(N):
res += min(A) * max(B)
A.remove(min(A))
B.remove(max(B))
print(res)
그 외
1. 해당 문제에서는 배열 B는 재배열하지 말라고 나와있지만, 결과값이 숫자로만 출력되는 것을 보고(B 재배열 여부를 확인하지 않는 것이라 생각) 그냥 재배열 해서 문제 해결 함
2. 그래도 재배열을 하지 않고 풀이 해봄
3. 재배열 != list 변경이라 생각하고 remove 하면서 문제 해결(걍 자기 합리화인가...)
문제 해결을 위한 아이디어
1. A의 n번째로 큰 값(작은 값) * B의 n번째로 작은 값(큰 값)을 계산한 후 더해주면 끝나는 문제
ps. 개인적인 코드와 코드를 작성의 이유를 적은 것입니다.
오류나 적절치 않은 문법이 존재할 수 있으며, 다른 분들께는 굉장히 비효율적인 방법으로 여겨질 수 있습니다.
혹시 개선 사항, 오류 및 문제에 대한 수정 사항 등을 댓글로 남겨주신다면 감사한 마음으로 배우고 수정하겠습니다
'코딩 문제해결 > 문제 풀이.백준' 카테고리의 다른 글
[BOJ/백준 코딩] 로봇 청소기 - PYTHON #14503 (0) | 2021.02.02 |
---|---|
[BOJ/백준 코딩] 양 - PYTHON #3184 (0) | 2021.02.01 |
[BOJ/백준 코딩] 숫자판 점프 - PYTHON #2210 (0) | 2021.01.31 |
[BOJ/백준 코딩] 마법사 상어와 토네이도 - PYTHON #20057 (0) | 2021.01.30 |
[BOJ/백준 코딩] 연길이의 이상형 - PYTHON #20540 (0) | 2021.01.17 |