์šฐ๊ทœ์ด์ธ์šฐ์œค
Eager To Learn ๐ŸŒŒ
์šฐ๊ทœ์ด์ธ์šฐ์œค
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ

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

  • ๐Ÿก ํ™ˆ
  • ๐Ÿš€ ๊นƒํ—ˆ๋ธŒ
  • โ›… ํƒœ๊ทธ ํด๋ผ์šฐ๋“œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (217)
    • ๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ป PS (170)
      • JAVA (82)
      • MYSQL (1)
      • Docker (2)
      • PYTHON (24)
      • LeetCode 150 (39)
      • Algorithm ๊ธฐ๋ฒ• (1)
      • ๋ฐ”ํ‚น๋… (21)
    • ๋ธ”๋กœ๊ทธ ์ด์‚ฌ (0)
    • Error (1)
    • CS (15)
      • DataBase (2)
      • OS (7)
      • Network (1)
      • Spring (1)
      • ์ž๋ฃŒ๊ตฌ์กฐ (3)
      • Java (1)
    • Learned (7)
      • Spring (7)
    • ๊ฐœ๋ฐœ์„œ์  (15)
      • ๊ฐ€์ƒ ๋ฉด์ ‘ ์‚ฌ๋ก€๋กœ ๋ฐฐ์šฐ๋Š” ๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ ์„ค๊ณ„ ๊ธฐ์ดˆ (1)
      • ์˜ค๋ธŒ์ ํŠธ - ์กฐ์˜ํ˜ธ (7)
      • ์นœ์ ˆํ•œ SQL ํŠœ๋‹ (7)
    • ํšŒ๊ณ  (2)
hELLO ยท Designed By ์ •์ƒ์šฐ.
์šฐ๊ทœ์ด์ธ์šฐ์œค
๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ป PS/JAVA

[ํŒŒ์ด์ฌ PYTHON] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ใ€๋’ค์— ์žˆ๋Š” ํฐ ์ˆ˜ ์ฐพ๊ธฐใ€‘

๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ป PS/JAVA

[ํŒŒ์ด์ฌ PYTHON] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ใ€๋’ค์— ์žˆ๋Š” ํฐ ์ˆ˜ ์ฐพ๊ธฐใ€‘

2023. 4. 4. 23:57

์ง„์งœ ๋„ˆ๋ฌด ์–ด๋ ค์› ๋‹ค..

 

๋ฌธ์ œ๋ฅผ ๊ฒจ์šฐ ์ดํ•ดํ•ด๋ดค๊ณ  ๋‚ด๊ฐ€ ์ดํ•ดํ•œ ๋ฐ”ํƒ•์œผ๋กœ ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด ์„ค๋ช…ํ•ด๋ณด๊ฒ ๋‹ค.

 

stack์„ ์‚ฌ์šฉํ•  ๊ฒƒ์ด๊ณ , stack์—๋Š” ๊ฐ’์ด ์•„๋‹Œ ์ธ๋ฑ์Šค๋ฅผ ๊ฐฑ์‹ ํ•ด ๋‚˜๊ฐˆ ๊ฒƒ์ด๋‹ค.

๋จผ์ € ์ฒซ๋ฒˆ์งธ ์›์†Œ(index = 0)์ธ 9๋Š” ๋น„๊ต๋Œ€์ƒ์ด ์—†์œผ๋ฏ€๋กœ stack์— ๊ทธ๋ƒฅ ์ž…๋ ฅํ•œ๋‹ค.

 

stack์— index๊ฐ€ ์•„์ง ์กด์žฌํ•œ๋‹ค๋Š” ๋œป์€ ์•„์ง ๋’ท ํฐ์ˆ˜๋ฅผ ๋งŒ๋‚˜์ง€ ๋ชปํ–ˆ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค.

 

 

 

๊ทธ ๋‹ค์Œ ๋‘๋ฒˆ์งธ ์›์†Œ(index = 1)์€ ๊ฐ’์ด 1์ด๊ณ  stack์„ ํ™•์ธํ•ด์„œ ๋’ท ํฐ ์ˆ˜๋กœ์„œ ์—ญํ• ์„ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•ด๋ณธ๋‹ค.

 

ํ•˜์ง€๋งŒ stack์— ์ €์žฅ๋˜์–ด ์žˆ๋Š” ์ธ๋ฑ์Šค๋กœ ๊ฐ’์„ ํ™•์ธํ•ด๋ณด๋‹ˆ 1๋ณด๋‹ค ํฐ 9์ด๋ฏ€๋กœ ์†Œ๊ฑฐํ•  ์ˆ˜ ์—†๋‹ค.

 

stack์— ๋ณ€ํ™” ์—†์ด index 1์„ ์Šคํƒ์— ์ถ”๊ฐ€ํ•œ๋‹ค.

 

 

 

๊ทธ ๋‹ค์Œ 3๋ฒˆ์งธ ์›์†Œ์ธ (index = 2) 5๊ฐ€ ๋’ท ํฐ ์ˆ˜ ์—ญํ• ์„ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•ด๋ณธ๋‹ค.

 

stack[-1] ์›์†Œ๊ฐ€ 1์ด๊ณ  1์ด ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฐ’์€ 1๋กœ 5๋Š” 1์˜ ๋’ท ํฐ ์ˆ˜ ์—ญํ• ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋”ฐ๋ผ์„œ answer[1]์— 5๋ฅผ ๊ธฐ๋กํ•œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  stack.pop()์„ ํ†ตํ•ด ๋’ท ํฐ ์ˆ˜๋ฅผ ์ฑ„์› ์œผ๋‹ˆ ์ธ๋ฑ์Šค 1์„ ์ง€์šด๋‹ค.

 

๊ทธ๋Ÿฌ๋ฉด stack = [0] ์ธ ์ƒํ™ฉ์ด ๋˜๋Š”๋ฐ

 

5๊ฐ€ ๋’ท ํฐ ์ˆ˜ ์—ญํ• ์„ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•ด๋ณธ๋‹ค.

ํ•˜์ง€๋งŒ, 0์ด ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฐ’์€ 9์ด๋ฏ€๋กœ 5๋Š” ๋’ท ํฐ ์ˆ˜ ์—ญํ• ์„ ํ•  ์ˆ˜ ์—†์–ด 0์„ ์†Œ๊ฑฐํ•  ์ˆœ ์—†๋‹ค.

 

๋”ฐ๋ผ์„œ, index = 2๋ฅผ stack์— ์ถ”๊ฐ€ํ•˜๊ณ  ๋‹ค์Œ ๋‹จ๊ณ„๋กœ ๋„˜์–ด๊ฐ„๋‹ค.

 

 

 

 

 

4๋ฒˆ์งธ ์›์†Œ์ธ(index = 3) 3์ด ๋’ท ํฐ ์ˆ˜ ์—ญํ• ์„ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•ด๋ณธ๋‹ค.

 

stack[-1] ์ธ 2๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ์›์†Œ๋Š” 5์ด๋ฏ€๋กœ 3์€ ๋’ท ํฐ ์ˆ˜ ์—ญํ• ์„ ํ•  ์ˆ˜ ์—†๊ณ  stack์— ์•„๋ฌด๋Ÿฐ ์˜ํ–ฅ์„ ์ฃผ์ง€ ๋ชปํ•˜๊ณ 

stack์— index = 3์„ ์ถ”๊ฐ€ํ•˜๊ณ  ๋‹ค์Œ ๋‹จ๊ณ„๋กœ ๋„˜์–ด๊ฐ„๋‹ค.

 

 

 

 

 

5๋ฒˆ์งธ ์›์†Œ์ธ (index = 4) 6์ด ๋’ท ํฐ ์ˆ˜ ์—ญํ• ์„ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•ด๋ณธ๋‹ค.

 

๋จผ์ € stack[-1]์ธ 3์ด ๊ฐ€๋ฆฌํ‚ค๋Š” ์›์†Œ๊ฐ€ 3์ด๋ฏ€๋กœ 6์€ ๋’ท ํฐ ์ˆ˜ ์—ญํ• ์„ ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ

answer[stack[-1]] = answer[3] ์— 6์„ ๊ธฐ๋กํ•œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  stack.pop()์„ ํ†ตํ•ด์„œ ๋’ท ํฐ ์ˆ˜๋ฅผ ๊ธฐ๋กํ•œ ์ธ๋ฑ์Šค๋ฅผ stack์—์„œ ์ œ์™ธ์‹œํ‚จ๋‹ค.

 

ํ•œ ๋ฒˆ๋” ํ™•์ธํ•ด๋ณธ๋‹ค.

stack[-1]์ธ 2๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ์›์†Œ๊ฐ€ 5์ด๋ฏ€๋กœ 6์ด ๋’ท ํฐ ์ˆ˜ ์—ญํ• ์„ ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ 

answer[stack[-1]] = answer[2] ์— 6์„ ๊ธฐ๋กํ•œ๋‹ค.

 

ํ•œ ๋ฒˆ๋” ํ™•์ธํ•ด๋ณธ๋‹ค.

stack[-1]์ธ 0์ด ๊ฐ€๋ฆฌํ‚ค๋Š” ์›์†Œ๊ฐ€ 9์ด๋ฏ€๋กœ 6์€ ๋’ท ํฐ ์ˆ˜ ์—ญํ• ์„ ํ•  ์ˆ˜ ์—†๊ณ  

stack์— index = 4๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ๋‹ค์Œ ๋‹จ๊ณ„๋กœ ๋„˜์–ด๊ฐ„๋‹ค.

 

 

......

 

 

์ด๋Ÿฐ์‹์œผ๋กœ ์ง„ํ–‰ ๋˜๋Š” ๋กœ์ง์ด๊ณ , ์ด๋ฅผ ์ฝ”๋“œ๋กœ ๊ตฌํ˜„ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

 

def solution(numbers):
    answer = [-1]*len(numbers)
    
    stack = []
    
    for index in range(len(numbers)):
    
        target = numbers[index]
        
        while stack and numbers[stack[-1]]<target:
            answer[stack.pop()]=target
            
        stack.append(index)
                
    return answer

 

์ตœ๋Œ€ํ•œ ์ž˜ ์„ค๋ช…ํ•ด๋ณด๋ ค๊ณ  ๋…ธ๋ ฅํ–ˆ๋Š”๋ฐ.. ์„ค๋ช…ํ•œ ๋‚ด์šฉ์ด ์ž˜ ์ „๋‹ฌ๋์œผ๋ฉด ์ข‹๊ฒ ๋‹ค..ใ…Ž

    '๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ป PS/JAVA' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [JAVA] 2018 KAKAO BLIND RECRUITMENT ใ€์บ์‹œใ€‘
    • [ํŒŒ์ด์ฌ PYTHON] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ใ€์‚ผ๊ฐ ๋‹ฌํŒฝ์ดใ€‘
    • [ํŒŒ์ด์ฌ PYTHON ยท ์ž๋ฐ” JAVA] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šคใ€์ด์ง„ ๋ณ€ํ™˜ ๋ฐ˜๋ณตํ•˜๊ธฐใ€‘
    • [ํŒŒ์ด์ฌ PYTHON ยท ์ž๋ฐ” JAVA] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šคใ€์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธใ€‘
    ์šฐ๊ทœ์ด์ธ์šฐ์œค
    ์šฐ๊ทœ์ด์ธ์šฐ์œค
    ๊ฐœ๋ฐœ์ž ๊ฟˆ๋‚˜๋ฌด

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

    ๋‹จ์ถ•ํ‚ค

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

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

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

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

    ๋ชจ๋“  ์˜์—ญ

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

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