본문 바로가기

알고리즘 풀이79

[알고리즘] 프로그래머스 | 구명보트 구명보트 탐욕법 Greedy 문제라고 적혀있다 답: 더보기 from collections import deque def solution(people, limit): count = 0 people.sort() deq = deque(people) while deq: weight = limit - (deq[0] + deq[-1]) if weight .. 2023. 9. 1.
[알고리즘] 프로그래머스 | 짝지어 제거하기 (페어) 짝지어 제거하기 답: 더보기 def solution(s): stack = [] for i in s: print(stack) if not stack: stack.append(i) elif stack[-1] != i: stack.append(i) else: #stack[-1] == i인 경우 stack.pop() return 0 if stack else 1 문제 분석 및 해석 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙입니다 이 과정을 반복해 문자열을 모두 제거한다면 1, 아닐 경우 0을 리턴 >> 풀이생각 짝지어 제거하기에서 올바른괄호가 생각났다 stack을 사용해서 푸는 문제구나! >> 페어 풀이 지도 받음 스택에 없으면 스택에 추가(신병 받아라~.. 2023. 8. 31.
[알고리즘] Python 원시문자열 Python 원시 문자열 raw string으로 부른다. 원시 문자열은 Windows의 정규식이나 디렉터리 경로 와 같이 백슬래시가 많은 문자열을 처리할 때 유용하다 r" " 형식으로 문자열 혹은 주석 앞에도 붙여서 (r""" """)사용할 수 있으며 백슬래시("\")를 리터럴 문자로 처리한다 이전 백준 입출력과 사칙연산 문제의 [고양이]/[개] 문제에서 백슬래시는 바로 뒤의 문자를 출력하도록 사용할 수 있는 정규식 문자라는 부분을 공부했었다. 일반 문자열에서는 백슬래시를 이스케이프 코드로써 이후 문자에 대한 출력방식을 정하는데에 사용하지만, r string에서는 주로 link, 경로를 처리하기 때문에 백슬래시를 무시하지 않는 결과를 반환하는 것이다. #일반 문자열 s = 'lang\tver\nPytho.. 2023. 8. 30.
[알고리즘] 프로그래머스 | 올바른 괄호 올바른 괄호 답: 더보기 도움을 받아 풀이했다ㅠ def solution(s): stack = [] for iter_s in s: if iter_s == '(': # open stack.append(iter_s) elif iter_s == ')' and len(stack) > 0 and stack[-1] == '(': # close stack.pop() else: return False if len(stack) > 0: return False return True 문제 분석 및 해석 주어진 문자열 s에서 괄호가 ( )로 바르게 짝지어졌는지 확인하기 >> 풀이생각 스택을 이용하는 문제. 복잡하게 풀 필요 없이 open, close를 맞추고 짝이 맞지 않으면 스택을 쌓아두는 방식으로 풀이한다. 리뷰. 혼자 풀.. 2023. 8. 28.