728x90
반응형

코딩테스트 91

[자료구조] 스택 - 중위표현식 후위표현식으로 변환

🙆‍♂️ 후위표현식으로 변환하기 """ 스택 클래스 Stack def emt : 스택에 값이 없다면 True를 반환 있다면 False를 반환 def size : 스택의 현재 길이를 반환 def clear : 스택 값을 초기화 def push : 입력 요소 ch를 스택에 입력 def pop : 스택의 최상단 값을 삭제 def peek : 스택의 최상단 값 반환 def disply : 스택의 상태를 출력 """ class Stack: def __init__(self): self.stack=[] def emt(self): return len(self.stack)==0 def size(self): return len(self.stack) def clear(self): self.stack=[] def push(s..

[파이썬] 문자열에서 숫자와 특수문자 나누기 (수학식 문자열을 리스트에)

🙆‍♂️파이썬 string = input("input num : ") string = re.split('([^0-9])',string) string = ' '.join(string).split() print(string) string = re.split('([^0-9])',string) 이 코드로 숫자와 연산자를 구분할 수 있습니다. 그러나 위 코드만 사용하면 결과가 이렇게 괄호 앞 뒤로 공백이 생깁니다. string = ' '.join(string).split() 그래서 위의 코드로 리스트의 공백요소를 제거해주면 깔끔해집니다.

[자료구조] 스택 - 괄호 검사 알고리즘

🙆‍♂️ 괄호 검사 알고리즘 """ 괄호 검사 알고리즘 """ def checkB(string): stack = [] for i in string: if i in ['(','{','[']: stack.append(i) elif i in [')','}',']']: if len(stack) == 0: return "Wrong String!" else: if (( stack[-1] == '(' and i==')' or stack[-1] == '{' and i=='}' or stack[-1] == '[' and i==']' )): stack.pop(-1) else: return "Wrong String!" if len(stack) != 0: return "Wrong String!" else: return "Go..

[자료구조] 스택 - 스택 class 구현

🙆‍♂️스택 """ 스택 클래스 Stack def emt : 스택에 값이 없다면 True를 반환 있다면 False를 반환 def size : 스택의 현재 길이를 반환 def clear : 스택 값을 초기화 def push : 입력 요소 ch를 스택에 입력 def pop : 스택의 최상단 값을 삭제 def peek : 스택의 최상단 값 반환 def disply : 스택의 상태를 출력 """ class Stack: def __init__(self): self.stack=[] def emt(self): return len(self.stack)==0 def size(self): return len(self.stack) def clear(self): self.stack=[] def push(self,ch): se..

[백준][Python] 1259. 팰린드롬수

🙆‍♂️문제 🙋‍♂️풀이 🚀 입력받기 & 문제 풀이 핵심 ans = [] while 1: try: n = list(input()) if n[0] == '0': break else: r=list(reversed(n)) if n==r: ans.append('yes') else: ans.append('no') except: break 먼저 답을 저장할 ans 리스트를 만듭니다. 그리고 try except문을 만들어 0이 입력되면 입력을 종료하도록 합니다. n이라는 변수에 수가 입력되면 한 숫자씩 리스트로 입력받게 합니다. 1231을 입력하면 이렇게 '1', '2', '3', '1'로 저장됩니다. 그리고 이제 이 리스트를 거꾸로 뒤집어서 r이라는 변수에 넣고 n과 r을 비교했을 때 같으면 팰린드롬수가니까 ans..

[백준][Python] 17299. 오등큰수

🙆‍♂️문제 🙋‍♂️풀이 오큰수 문제와 비슷하지만 오큰수문제는 오른쪽에 있는 수 중 가장 왼쪽에 있는 가장 큰 수였다면 오등큰수는 값이 큰 것이 아닌 등장 수가 가장 많은 수 중 가장 왼쪽의 수 입니다. 없는 경우 -1을 출력합니다. 🚀 입력받기 from collections import Counter import sys n = int(sys.stdin.readline()) arr = list(map(int, sys.stdin.readline().split())) 배열 속 요소를 세야하기 때문에 collections의 Counter함수를 사용합니다. 🚀 문제 풀이 핵심 cnt = Counter(arr) stack = [] answer=[] for i in range(n): answer.append(-1)..

[백준][Python] 17298. 오큰수

🙆‍♂️문제 🙋‍♂️풀이 수열이 주어집니다. 이 수열에 있는 값 중 하나를 Ai라고 했을 때 오큰수는 수열 중 Ai보다 큰 수 중 가장 왼쪽에 있는 수를 의미합니다. 🚀 입력받기 import sys n = int(sys.stdin.readline()) arr = list(map(int, sys.stdin.readline().split())) 우선 수열의 길이 n과 수열 arr을 입력 받습니다. 🚀 문제 풀이 핵심 stack = [] answer=[] for i in range(n): answer.append(-1) maxNum = max(arr) for i in range(n): if len(stack) == 0: stack.append(i) else: while 1: if arr[i] > arr[sta..

[백준][Python] 10799. 쇠막대기

🙆‍♂️문제 🙋‍♂️풀이 괄호를 통해서 막대기수와 레이저 수를 구해서 풀어야 합니다. 스택 구조를 이용해서 풀 수 있습니다. 🚀 입력받기 import sys msg = list(sys.stdin.readline()) 먼저 괄호들을 하나하나 문자로 입력받아 msg 리스트에 저장합니다. 🚀 문제 풀이 핵심 br = []; total = 0 for i,v in enumerate(msg): if v == '(': br.append('(') elif v == ')': if msg[i-1] == '(': br.pop(-1) total += len(br) else: br.pop(-1) total+=1 br리스트를 스택으로 사용하고 total 변수에 모든 값을 저장합니다. enumerate를 사용해서 msg리스트의 인..

[백준][Python] 1264. 모음의 개수

🙆‍♂️문제 🙋‍♂️풀이 🚀 입력받기 total = [] while 1: try: qStr = list(input()) if '#' in qStr: break else: total.append(qStr) except: break while 문과 try ~ except 문을 사용해서 #이 입력되면 입력이 종료되도록 설정하고 모든 입력을 문자로 저장하여 total에 리스트값들로 다시 저장했습니다. 🚀 문제 풀이 핵심 & 출력하기 cnt=0;mo=['a','e','i','o','u','A','E','I','O','U'] for i in total: for j in i: if j in mo: cnt+=1 print(cnt) cnt=0 모음으로 인정하는 a, e, i, o, u와 대문자들까지를 배열에 저장해놓고 ..

728x90
반응형