Published:
Updated:

  • Reference
  • μš°μ—°νžˆ κ·œμΉ™μ„ 찾게 λ˜μ–΄μ„œ μ‰½κ²Œ ν’€λ¦° 문제


Solution

from typing import List


class Solution:
    # min()을 ν•œ κ²°κ³Όκ°’λ“€μ˜ 합이 μ΅œλŒ€κ°€ λ˜λ„λ‘ ν•˜λŠ” 문제
    # (κ°€μž₯ μž‘μ€ 수, κ°€μž₯ 큰 수) -> μ΄λ ‡κ²Œ μ΅œμ†Œκ°€ λ˜λ„λ‘ ν•˜λ €λ©΄ 두 수의 차이가 μ΅œλŒ€ν•œ 컀야 λ˜μž–μ•„?
    # κ·Έλ‹ˆκΉŒ μ΅œλŒ€κ°€ λ˜λ„λ‘ ν•˜λ €λ©΄ 두 수의 차이가 거의 없도둝 ν•΄μ•Ό 될 κ±° κ°™μŒ
    # 단, 예제 1처럼 λͺ¨λ“  수의 μ°¨κ°€ 같은 경우λ₯Ό 봀을 λ•Œ μ˜€λ¦„μ°¨μˆœ μˆœμ„œλŒ€λ‘œ ν•˜λŠ” 게 μ •λ‹΅μž„. κ·ΈλŸ¬λ―€λ‘œ μ •λ ¬ν•΄ 주자
    def arrayPairSum(self, nums: List[int]) -> int:
        # 1) [1, 2, 3, 4]
        # 2) [1, 2, 2, 5, 6, 6]
        answer = 0

        # μœ„μ—μ„œ μ„€λͺ…ν•œ λŒ€λ‘œ μ˜€λ¦„μ°¨μˆœ μ •λ ¬
        nums.sort()

        for i in range(0, len(nums), +2):
            answer += nums[i]

        return answer


Another Solution (This is Python)

class Solution:
    def arrayPariSum(self, nums: List[int]) -> int:
        return sum(sorted(nums)[::2])
  • μŠ¬λΌμ΄μ‹± ꡬ문 [::2]λŠ” 2μΉΈμ”© κ±΄λ„ˆλ›°μ–΄μ„œ μŠ¬λΌμ΄μ‹±ν•œλ‹€λŠ” 의미
    • 즉, 짝수 번째λ₯Ό κ³„μ‚°ν•˜λŠ” 것과 κ°™μŒ
  • μ„±λŠ₯도 μŠ¬λΌμ΄μ‹±μ„ μ‚¬μš©ν–ˆκΈ° λ•Œλ¬Έμ— 이게 더 μ’‹μŒ

Leave a comment