deo2kim
๋งž์™œํ‹€
deo2kim
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ
    • CS
      • Algorithm
      • Data Structure
      • Network
      • DB
      • OS
    • Algorithm Problem
      • Python
      • JavaScript
    • Programming language
      • Python
      • JavaScript
    • Tool
      • Jquery
      • React
    • ๊ฐœ๋ฐœ
    • Infra

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

๋ฐ˜์‘ํ˜•
hELLO ยท Designed By ์ •์ƒ์šฐ.
deo2kim
Algorithm Problem/Python

[python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ํ’์„  ํ„ฐํŠธ๋ฆฌ๊ธฐ(์›”๊ฐ„ ์ฝ”๋“œ ์ฑŒ๋ฆฐ์ง€ ์‹œ์ฆŒ1)

[python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ํ’์„  ํ„ฐํŠธ๋ฆฌ๊ธฐ(์›”๊ฐ„ ์ฝ”๋“œ ์ฑŒ๋ฆฐ์ง€ ์‹œ์ฆŒ1)
Algorithm Problem/Python

[python] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ํ’์„  ํ„ฐํŠธ๋ฆฌ๊ธฐ(์›”๊ฐ„ ์ฝ”๋“œ ์ฑŒ๋ฆฐ์ง€ ์‹œ์ฆŒ1)

2020. 9. 25. 08:08
๋ฐ˜์‘ํ˜•

๐Ÿค”๋ฌธ์ œ ํ•ด๊ฒฐ

  • Lv3 

ํ’์„ ์ด ์‚ด์•„๋‚จ์„ ์ˆ˜ ์žˆ๋Š” ์กฐ๊ฑด:

  • ๋‚ด ํ’์„  ๊ธฐ์ค€ ์™ผ์ชฝ ํ’์„  ํฌ๊ธฐ๊ฐ€ ํด ๋•Œ
  • ๋‚ด ํ’์„  ๊ธฐ์ค€ ์˜ค๋ฅธ์ชฝ ํ’์„  ํฌ๊ธฐ๊ฐ€ ํด ๋•Œ
  • ๋งŒ์•ฝ ์™ผ์ชฝ๊ณผ ์˜ค๋ฅธ์ชฝ ๋‘˜๋‹ค ํฌ๊ธฐ๊ฐ€ ์ž‘์œผ๋ฉด ํ’์„ ์€ ์ฃฝ๋Š”๋‹ค

์ด ๋ฌธ์ œ์—์„œ ํ•ต์‹ฌ์€ ํ’์„ ์˜ ํฌ๊ธฐ๊ฐ€ ๊ฐ€์žฅ ์ž‘์€ ๋…€์„๋“ค์„ ํ•˜๋‚˜์”ฉ ๋ฝ‘์•„์ฃผ๋ฉด ๋˜๋Š” ๊ฒƒ!

์ตœ์ดˆ ์ธํ’‹ ๊ฐ’ (ํ…Œ์ŠคํŠธ์ผ€์ด์Šค2)

๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ์„ ํ•ด์ฃผ๋ฉด

  • ํฌ๊ธฐ๊ฐ€ ๊ฐ€์žฅ ์ž‘์€ ํ’์„ (5)์€ ๋ฌด์กฐ๊ฑด ์‚ด์•„๋‚จ๋Š”๋‹ค. - (๋ชจ๋‘ ๋‹ค ํ„ฐํŠธ๋ฆด ์ˆ˜ ์žˆ๋‹ค)
  • ํฌ๊ธฐ๊ฐ€ ๋‘๋ฒˆ์งธ๋กœ ์ž‘์€ ํ’์„ (6)๋„ ๋ฌด์กฐ๊ฑด ์‚ด์•„๋‚จ๋Š”๋‹ค. - (์ž์‹ ๋ณด๋‹ค ์ž‘์€ ํ’์„ (5)์„ ํ„ฐํŠธ๋ฆด ์ฐฌ์Šค๊ฐ€ 1๋ฒˆ ์žˆ๊ธฐ ๋•Œ๋ฌธ)
  • ํฌ๊ธฐ๊ฐ€ ์„ธ๋ฒˆ์งธ๋กœ ์ž‘์€ ํ’์„ (7) ๋ถ€ํ„ฐ๋Š” ์ธ๋ฑ์Šค์˜ ์ƒํ™ฉ์— ๋”ฐ๋ผ ๊ฒฐ์ •๋œ๋‹ค.
    ๋งŒ์•ฝ 7์ด ์•ž์˜ ๋‘ ํ’์„  ์‚ฌ์ด์— ์žˆ์„ ๊ฒฝ์šฐ ์ž์‹ ์˜ ์–‘์ชฝ์ด ๋ชจ๋‘ ์ž‘๊ธฐ ๋•Œ๋ฌธ์— ํ’์„ ์€ ์ฃฝ๋Š”๋‹ค.
    ํ•˜์ง€๋งŒ ๋‘ ํ’์„  ์‚ฌ์ด๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด ( 5 < 6 < 7 )
    7 ํ’์„ ์˜ ์˜ค๋ฅธ์ชฝ์€ ๋ชจ๋‘ 7 ํ’์„  ๋ณด๋‹ค ํฌ๊ธฐ๊ฐ€ ํฌ๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค ํ„ฐํŠธ๋ฆด ์ˆ˜ ์žˆ๋‹ค.
    7 ํ’์„ ์˜ ์™ผ์ชฝ์€ 5 ํ’์„ ์ด ๋‹ค๋ฅธ ๋ชจ๋“  ํ’์„ ์„ ํ„ฐํŠธ๋ฆด ์ˆ˜ ์žˆ๋‹ค.
    ๊ฒฐ๊ณผ์ ์œผ๋กœ 7 ํ’์„ ๊ณผ 5 ํ’์„ ์ด ๋‚จ๊ฒŒ ๋˜๋ฉด ์ฐฌ์Šค๋ฅผ ์‚ฌ์šฉํ•ด 5 ํ’์„ ์„ ํ„ฐํŠธ๋ฆฐ๋‹ค.
    !! ์š”์•ฝํ•˜์ž๋ฉด ์•ž์˜ ๋‘ ํ’์„ ์‚ฌ์ด์— ๋“ค์–ด๊ฐ€์ง€ ์•Š๋Š”๋‹ค๋ฉด ํ’์„ ์€ ์‚ด์•„๋‚จ๊ฒŒ ๋˜๋Š” ๊ฒƒ!

๐Ÿ’จ ๋‚˜์˜ ๊ฒฝ์šฐ sort๋ฅผ ๋”ฐ๋กœ ํ•ด์ฃผ๊ธฐ๋ณด๋‹ค ์šฐ์„ ์ˆœ์œ„ ํ๋ฅผ ์ด์šฉํ–ˆ๋‹ค(ํž™ํ)

๐Ÿ’ป์†Œ์Šค ์ฝ”๋“œ

import heapq


def solution(a):
    if len(a) < 3:
        return len(a)
    answer = 2
    pq = []
    for i in range(len(a)):
        heapq.heappush(pq, (a[i], i))

    left = heapq.heappop(pq)[1]
    right = heapq.heappop(pq)[1]
    if left > right:
        left, right = right, left

    while pq:
        c = heapq.heappop(pq)[1]
        if c < left:
            answer += 1
            left = c
        elif c > right:
            answer += 1
            right = c

    return answer

 

๐Ÿ“•๋ฌธ์ œ ํ™•์ธ

์ถœ์ฒ˜: ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

๋งํฌ: https://programmers.co.kr/learn/courses/30/lessons/68646?language=python3

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ํ’์„  ํ„ฐํŠธ๋ฆฌ๊ธฐ

[-16,27,65,-2,58,-92,-71,-68,-61,-33] 6

programmers.co.kr


๋ฌธ์ œ ์„ค๋ช…

์ผ๋ ฌ๋กœ ๋‚˜์—ด๋œ n๊ฐœ์˜ ํ’์„ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ํ’์„ ์—๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ์ˆซ์ž๊ฐ€ ์จ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹น์‹ ์€ ๋‹ค์Œ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•˜๋ฉด์„œ ํ’์„ ๋“ค์„ ๋‹จ 1๊ฐœ๋งŒ ๋‚จ์„ ๋•Œ๊นŒ์ง€ ๊ณ„์† ํ„ฐํŠธ๋ฆฌ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

  1. ์ž„์˜์˜ ์ธ์ ‘ํ•œ ๋‘ ํ’์„ ์„ ๊ณ ๋ฅธ ๋’ค, ๋‘ ํ’์„  ์ค‘ ํ•˜๋‚˜๋ฅผ ํ„ฐํŠธ๋ฆฝ๋‹ˆ๋‹ค.
  2. ํ„ฐ์ง„ ํ’์„ ์œผ๋กœ ์ธํ•ด ํ’์„ ๋“ค ์‚ฌ์ด์— ๋นˆ ๊ณต๊ฐ„์ด ์ƒ๊ฒผ๋‹ค๋ฉด, ๋นˆ ๊ณต๊ฐ„์ด ์—†๋„๋ก ํ’์„ ๋“ค์„ ์ค‘์•™์œผ๋กœ ๋ฐ€์ฐฉ์‹œํ‚ต๋‹ˆ๋‹ค.

์—ฌ๊ธฐ์„œ ์กฐ๊ฑด์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ธ์ ‘ํ•œ ๋‘ ํ’์„  ์ค‘์—์„œ ๋ฒˆํ˜ธ๊ฐ€ ๋” ์ž‘์€ ํ’์„ ์„ ํ„ฐํŠธ๋ฆฌ๋Š” ํ–‰์œ„๋Š” ์ตœ๋Œ€ 1๋ฒˆ๋งŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ์–ด๋–ค ์‹œ์ ์—์„œ ์ธ์ ‘ํ•œ ๋‘ ํ’์„  ์ค‘ ๋ฒˆํ˜ธ๊ฐ€ ๋” ์ž‘์€ ํ’์„ ์„ ํ„ฐํŠธ๋ ธ๋‹ค๋ฉด, ๊ทธ ์ดํ›„์—๋Š” ์ธ์ ‘ํ•œ ๋‘ ํ’์„ ์„ ๊ณ ๋ฅธ ๋’ค ๋ฒˆํ˜ธ๊ฐ€ ๋” ํฐ ํ’์„ ๋งŒ์„ ํ„ฐํŠธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹น์‹ ์€ ์–ด๋–ค ํ’์„ ์ด ์ตœํ›„๊นŒ์ง€ ๋‚จ์„ ์ˆ˜ ์žˆ๋Š”์ง€ ์•Œ์•„๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์œ„์— ์„œ์ˆ ๋œ ์กฐ๊ฑด๋Œ€๋กœ ํ’์„ ์„ ํ„ฐํŠธ๋ฆฌ๋‹ค ๋ณด๋ฉด, ์–ด๋–ค ํ’์„ ์€ ์ตœํ›„๊นŒ์ง€ ๋‚จ์„ ์ˆ˜๋„ ์žˆ์ง€๋งŒ, ์–ด๋–ค ํ’์„ ์€ ๋ฌด์Šจ ์ˆ˜๋ฅผ ์“ฐ๋”๋ผ๋„ ๋งˆ์ง€๋ง‰๊นŒ์ง€ ๋‚จ๊ธฐ๋Š” ๊ฒƒ์ด ๋ถˆ๊ฐ€๋Šฅํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์ผ๋ ฌ๋กœ ๋‚˜์—ด๋œ ํ’์„ ๋“ค์˜ ๋ฒˆํ˜ธ๊ฐ€ ๋‹ด๊ธด ๋ฐฐ์—ด a๊ฐ€ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ์œ„์— ์„œ์ˆ ๋œ ๊ทœ์น™๋Œ€๋กœ ํ’์„ ๋“ค์„ 1๊ฐœ๋งŒ ๋‚จ์„ ๋•Œ๊นŒ์ง€ ํ„ฐํŠธ๋ ธ์„ ๋•Œ ์ตœํ›„๊นŒ์ง€ ๋‚จ๊ธฐ๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•œ ํ’์„ ๋“ค์˜ ๊ฐœ์ˆ˜๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

์ œํ•œ ์‚ฌํ•ญ

  • a์˜ ๊ธธ์ด๋Š” 1 ์ด์ƒ 1,000,000 ์ดํ•˜์ž…๋‹ˆ๋‹ค.
    • a[i]๋Š” i+1 ๋ฒˆ์งธ ํ’์„ ์— ์จ์ง„ ์ˆซ์ž๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
    • a์˜ ๋ชจ๋“  ์ˆ˜๋Š” -1,000,000,000 ์ด์ƒ 1,000,000,000 ์ดํ•˜์ธ ์ •์ˆ˜์ž…๋‹ˆ๋‹ค.
    • a์˜ ๋ชจ๋“  ์ˆ˜๋Š” ์„œ๋กœ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

a result
[9,-1,-5] 3
[-16,27,65,-2,58,-92,-71,-68,-61,-33] 6

 

์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

์ž…์ถœ๋ ฅ ์˜ˆ #1

  • ์ฒซ ๋ฒˆ์งธ ํ’์„ (9๊ฐ€ ์จ์ง„ ํ’์„ )์„ ์ตœํ›„๊นŒ์ง€ ๋‚จ๊ธฐ๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
    1. [9, -1, -5] ์—์„œ -1, -5๊ฐ€ ์จ์ง„ ํ’์„ ์„ ๊ณ ๋ฅธ ๋’ค, -1์ด ์จ์ง„ ํ’์„ (๋ฒˆํ˜ธ๊ฐ€ ๋” ํฐ ๊ฒƒ)์„ ํ„ฐํŠธ๋ฆฝ๋‹ˆ๋‹ค.
    2. [9, -5] ์—์„œ 9, -5๊ฐ€ ์จ์ง„ ํ’์„ ์„ ๊ณ ๋ฅธ ๋’ค, -5๊ฐ€ ์จ์ง„ ํ’์„ (๋ฒˆํ˜ธ๊ฐ€ ๋” ์ž‘์€ ๊ฒƒ)์„ ํ„ฐํŠธ๋ฆฝ๋‹ˆ๋‹ค.
  • ๋‘ ๋ฒˆ์งธ ํ’์„ (-1์ด ์จ์ง„ ํ’์„ )์„ ์ตœํ›„๊นŒ์ง€ ๋‚จ๊ธฐ๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
    1. [9, -1, -5] ์—์„œ 9, -1์ด ์จ์ง„ ํ’์„ ์„ ๊ณ ๋ฅธ ๋’ค, 9๊ฐ€ ์จ์ง„ ํ’์„ (๋ฒˆํ˜ธ๊ฐ€ ๋” ํฐ ๊ฒƒ)์„ ํ„ฐํŠธ๋ฆฝ๋‹ˆ๋‹ค.
    2. [-1, -5] ์—์„œ -1, -5๊ฐ€ ์จ์ง„ ํ’์„ ์„ ๊ณ ๋ฅธ ๋’ค, -5๊ฐ€ ์จ์ง„ ํ’์„ (๋ฒˆํ˜ธ๊ฐ€ ๋” ์ž‘์€ ๊ฒƒ)์„ ํ„ฐํŠธ๋ฆฝ๋‹ˆ๋‹ค.
  • ์„ธ ๋ฒˆ์งธ ํ’์„ (-5๊ฐ€ ์จ์ง„ ํ’์„ )์„ ์ตœํ›„๊นŒ์ง€ ๋‚จ๊ธฐ๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
    1. [9, -1, -5] ์—์„œ 9, -1์ด ์จ์ง„ ํ’์„ ์„ ๊ณ ๋ฅธ ๋’ค, 9๊ฐ€ ์จ์ง„ ํ’์„ (๋ฒˆํ˜ธ๊ฐ€ ๋” ํฐ ๊ฒƒ)์„ ํ„ฐํŠธ๋ฆฝ๋‹ˆ๋‹ค.
    2. [-1, -5] ์—์„œ -1, -5๊ฐ€ ์จ์ง„ ํ’์„ ์„ ๊ณ ๋ฅธ ๋’ค, -1์ด ์จ์ง„ ํ’์„ (๋ฒˆํ˜ธ๊ฐ€ ๋” ํฐ ๊ฒƒ)์„ ํ„ฐํŠธ๋ฆฝ๋‹ˆ๋‹ค.
  • 3๊ฐœ์˜ ํ’์„ ์ด ์ตœํ›„๊นŒ์ง€ ๋‚จ์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, 3์„ return ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #2

  • ์ตœํ›„๊นŒ์ง€ ๋‚จ์„ ์ˆ˜ ์žˆ๋Š” ํ’์„ ์€ -16, -92, -71, -68, -61, -33์ด ์จ์ง„ ํ’์„ ์œผ๋กœ ๋ชจ๋‘ 6๊ฐœ์ž…๋‹ˆ๋‹ค.
๋ฐ˜์‘ํ˜•
์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'Algorithm Problem > Python' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[python] ๋ฐฑ์ค€ - 1929. ์†Œ์ˆ˜ ๊ตฌํ•˜๊ธฐ  (0) 2020.09.28
[python] ๋ฐฑ์ค€ - 1011. Fly me to the Alpha Centauri  (0) 2020.09.26
[python] ๋ฐฑ์ค€ - 5014. ์Šคํƒ€ํŠธ๋งํฌ  (0) 2020.09.24
[python] ๋ฐฑ์ค€ - 3055. ํƒˆ์ถœ  (0) 2020.09.23
[python] ๋ฐฑ์ค€ - 1916. ์ตœ์†Œ๋น„์šฉ ๊ตฌํ•˜๊ธฐ  (0) 2020.09.23
  • ๐Ÿค”๋ฌธ์ œ ํ•ด๊ฒฐ
  • ๐Ÿ’ป์†Œ์Šค ์ฝ”๋“œ
  • ๐Ÿ“•๋ฌธ์ œ ํ™•์ธ
'Algorithm Problem/Python' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [python] ๋ฐฑ์ค€ - 1929. ์†Œ์ˆ˜ ๊ตฌํ•˜๊ธฐ
  • [python] ๋ฐฑ์ค€ - 1011. Fly me to the Alpha Centauri
  • [python] ๋ฐฑ์ค€ - 5014. ์Šคํƒ€ํŠธ๋งํฌ
  • [python] ๋ฐฑ์ค€ - 3055. ํƒˆ์ถœ
deo2kim
deo2kim
์ฝ”๋”ฉ ๊ธฐ๋กํ•˜๊ธฐ
๋งž์™œํ‹€์ฝ”๋”ฉ ๊ธฐ๋กํ•˜๊ธฐ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”

๊ฐœ์ธ์ •๋ณด

  • ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ
  • ํฌ๋Ÿผ
  • ๋กœ๊ทธ์ธ

๋‹จ์ถ•ํ‚ค

๋‚ด ๋ธ”๋กœ๊ทธ

๋‚ด ๋ธ”๋กœ๊ทธ - ๊ด€๋ฆฌ์ž ํ™ˆ ์ „ํ™˜
Q
Q
์ƒˆ ๊ธ€ ์“ฐ๊ธฐ
W
W

๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๊ธ€

๊ธ€ ์ˆ˜์ • (๊ถŒํ•œ ์žˆ๋Š” ๊ฒฝ์šฐ)
E
E
๋Œ“๊ธ€ ์˜์—ญ์œผ๋กœ ์ด๋™
C
C

๋ชจ๋“  ์˜์—ญ

์ด ํŽ˜์ด์ง€์˜ URL ๋ณต์‚ฌ
S
S
๋งจ ์œ„๋กœ ์ด๋™
T
T
ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ ์ด๋™
H
H
๋‹จ์ถ•ํ‚ค ์•ˆ๋‚ด
Shift + /
โ‡ง + /

* ๋‹จ์ถ•ํ‚ค๋Š” ํ•œ๊ธ€/์˜๋ฌธ ๋Œ€์†Œ๋ฌธ์ž๋กœ ์ด์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํ‹ฐ์Šคํ† ๋ฆฌ ๊ธฐ๋ณธ ๋„๋ฉ”์ธ์—์„œ๋งŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.