yehey's 공부 노트 \n ο(=•ω<=)ρ⌒☆

python으로 스택 문제 시도 본문

개발/Python

python으로 스택 문제 시도

yehey 2021. 1. 21. 22:35

프로그래머스로 python 스택문제, 해시 함수 이용하는 문제를 시도해봤다.

학교 강의 시간에 데이터 구조로 스택과 해시 함수를 C언어로 사용해보았기 때문에 잘 풀 수 있을거라고 생각했는데...

착각이었다...

python의 문법은 C와 너무 많이 달랐고, 나는 python은 2019년도에 들었던 강의가 마지막이기 때문에 배운것도 남아있지 않고 오히려 다 지워진 상태에서 막 시도한 것 같다.

그래도 시도하면서 파이썬 문법을 점점 알아갈 수 있겠지..!

 

처음에 생각했던 스택 구조는 아래와 같았다.

class Stacklist:
    def __init__(self,s_size):
        self.size=s_size
        self.top=-1
        self.slist=[0 for a in range(self.size)]
    
    def is_empty(self):
        if (self.top==-1):
            return True
        else:
            return False
    
    def pop(self):
        self.top-=1    
    
    def push(self,price):
        if (self.is_empty()):
            self.top+=1
            self.slist[0]=price
        else:
            self.top+=1
            self.slist[self.top]=price

 

C를 바탕으로 연습했던 스택 구조를 생각하면서 python으로 Stacklist를 만들었다.

하지만 파이썬에서는 굳이 복잡하게 만들지 않아도 됐다.

 

class Stack:
	def __init__():
    	self.top=[]		# top을 리스트로 선언한다.
    
    def is_empty(self):
    	if(len(self.top)==0):
        	return True
        else:
        	return False
            
    def pop(self):
    	if(self.is_empty()):
        	print('error')
            exit(1)
        else:
        	return self.top.pop()
    
    def push(self, item):
    	self.top.append(item)
    
    def peek(self):
    	return self.top.pop(-1)

 

이렇게 열심히 자료구조를 생각해냈지만 결국 문제는 풀지 못했다....ㅠ

'개발 > Python' 카테고리의 다른 글

[Python] locust 부하테스트  (0) 2023.11.11
윈도우 키로거  (0) 2020.11.15
Unix 패스워드 트래커  (0) 2020.11.15
포트 스캐너 (스레드, Nmap, optparse)  (0) 2020.10.11
python을 이용한 백도어 개발  (0) 2020.09.28
Comments