[๋ฌธ์ ๋งํฌ] ๐
ํ๋ก๊ทธ๋๋จธ์ค
SW๊ฐ๋ฐ์๋ฅผ ์ํ ํ๊ฐ, ๊ต์ก, ์ฑ์ฉ๊น์ง Total Solution์ ์ ๊ณตํ๋ ๊ฐ๋ฐ์ ์ฑ์ฅ์ ์ํ ๋ฒ ์ด์ค์บ ํ
programmers.co.kr
ํ์ด ๋ฐฉ๋ฒ
๐ก A ๋ฆฌ์คํธ์ ์ต์์ B ๋ฆฌ์คํธ์ ์ต๋์ ๊ณฑ, sort() ์ฌ์ฉ
A ๋ฆฌ์คํธ๋ ์ค๋ฆ์ฐจ์ ์ ๋ ฌ, B ๋ฆฌ์คํธ๋ ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌํ๋ค.
์ค๋ฆ์ฐจ์ ์ ๋ ฌ
A.sort()
๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ
B.sort(reverse=True)
๋ฆฌ์คํธ์ ๊ธธ์ด๋งํผ ๋ฐ๋ณต๋ฌธ์ ๋๋ ค ์ฐ์ฐ์ ํ๋ค.
Solution
def solution(A, B):
answer = 0
A.sort(), B.sort(reverse=True) # ์ ๋ ฌ
for i in range(len(A)):
answer += A[i] * B[i]
return answer
๐ฉ๐ป ํ๊ณ
์ด๊ธฐ ์ฝ๋(์ ํ์ฑ O, ํจ์จ์ฑ X)
def solution(A,B):
answer = 0
A = sorted(A)
B = sorted(B) # ์ ๋ ฌ
for i in range(len(A)):
if min(A, B) == A: # ์ต์๊ฐ์ด A ๋ฆฌ์คํธ์ ์์ ๊ฒฝ์ฐ
answer += A.pop(0) * B.pop() # ์ต์๊ฐ์ธ ๋งจ ์ ์์, ์ต๋๊ฐ์ธ ๋งจ ๋ค ์์ ๊บผ๋ธ ํ ์ฐ์ฐ
else: # ์ต์๊ฐ์ด B ๋ฆฌ์คํธ์ ์์ ๊ฒฝ์ฐ
answer += A.pop() * B.pop(0)
return answer
ํจ์จ์ฑ ํ ์คํธ ์คํจ์ ์์ธ
๋ฐ๋ณต๋ฌธ ์์์ pop(0)์ ์ฌ์ฉํด ๋ฆฌ์คํธ์ ์ฒซ ๋ฒ์งธ ์์๋ฅผ ์ ๊ฑฐํ๊ณ ์๊ธฐ ๋๋ฌธ์ด๋ค. pop(0)์ ๋ฆฌ์คํธ ์ ์ฒด๋ฅผ ํ ์นธ์ฉ ์ด๋์ํค๋ฏ๋ก ์๊ฐ๋ณต์ก๋๊ฐ O(n)์ด ๋์ด, ์ ๋ ฅ ํฌ๊ธฐ๊ฐ ํด ๋ ๋นํจ์จ์ ์ด๋ค.
๋ ๋ฆฌ์คํธ ์ค์ ์ต์๊ฐ์ด ๋ค์ด๊ฐ ์๋ ๊ธฐ์ค์ผ๋ก ์ฐ์ฐ์ ํด์ผ ํ๋ ๊ฑด ์ค ์์๋๋ฐ, ์ฌ์ค ์ด๋ป๊ฒ ํ๋ ๋๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ๋ธ๋ค.
๊ทธ๋์ ๊ตณ์ด min() ํจ์๋, pop() ํจ์๋ฅผ ์ฌ์ฉํ ํ์๊ฐ ์์๋ค. ๋จ์ํ ์ ๋ ฌ์ ์ด๋ป๊ฒ ํ๋๋๊ฐ ์ค์ํ ๋ฌธ์ ์๋ค.
'๐งฉ Algorithm > [Programmers] Level 2' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [Programmers] L2. ์ด์ง ๋ณํ ๋ฐ๋ณตํ๊ธฐ (Python) (0) | 2024.11.09 |
|---|---|
| [Programmers] L2. JadenCase ๋ฌธ์์ด ๋ง๋ค๊ธฐ (Python) (0) | 2024.11.08 |
| [Programmers] L2. ์ฌ๋ฐ๋ฅธ ๊ดํธ (์คํ/ํ/Python) (1) | 2024.11.08 |
| Programmers ๋ค์ ํฐ ์ซ์ (Python/Level 2) (0) | 2022.08.13 |
| Programmers ์ต๋๊ฐ๊ณผ ์ต์๊ฐ (Python/Level 2) (0) | 2022.08.12 |