본문 바로가기

알고리즘26

[python] 프로그래머스 올바른 괄호 문제 : https://school.programmers.co.kr/learn/courses/30/lessons/12909 📜 접근 방법 괄호를 스택에 집어넣는데 ')'가 나오면 pop을 하고 '('가 나오면 append 해준다. 단, ')'가 나올시 stack이 비어있으면 False를 출력한다. 또한 괄호를 다 끝내고 stack이 비어있지 않으면 False를 출력한다. ❌ 실패 코드 ✅ 정답 코드 def solution(s): answer = True stack = [] for c in s: if c == ')': if len(stack) == 0: return False stack.pop() elif c == '(': stack.append('(') if stack: return False retur.. 2023. 4. 21.
[python] 프로그래머스 콜라 문제 📜 접근 방법 콜라 갯수가 a 이상일때 까지 반복한다. 가지고 있는 n개의 병 중 빈 병 a개를 나눠 사용할 병 갯수(가져다 줄 빈병 갯수=using)를 구한다 n개의 병에서 가져다줄 빈병 갯수(a * using)을 빼주고 빈병을 주고 받은 병(add_coke)을 n에 더한다 받은 병(add_coke)을 answer에 더한다. ❌ 실패 코드 ✅ 정답 코드 def solution(a, b, n): answer = 0 while n >= a: using = n // a add_coke = using * b n -= using * a n += add_coke answer += add_coke return answer 💡알게 된점 종료 조건이 바로 생각나서 쉽게 풀 수 있었다. https://school.pro.. 2023. 4. 19.
[python] 프로그래머스 호텔 대실 📜 접근 방법 시작 시간을 기준으로 오름차순을 한다. 리스트에 끝나는 시간을 넣는다. 시작시간과 끝나는 시간을 비교하여 시작시간이 끝나는 시간 + 10분보다 작으면 객실 수를 추가한다. 비슷한 문제 : https://www.acmicpc.net/problem/1374 ❌ 실패 코드 문자열을 시간으로 바꾸는 것에서 문제가 생겼다. ✅ 정답 코드 from heapq import heappush, heappop def solution(book_time): answer = 0 heap = [] time_list = [] for s, e in book_time: time_list.append([int(s[:2]) * 60 + int(s[3:]), int(e[:2]) * 60 + int(e[3:])]) time_l.. 2023. 4. 16.
[python 백준 16953] A->B 📜 접근 방법 역으로 B에서 시작해서 A를 만들수 있는지 확인하는 방식으로 짰다. ❌ 실패 코드 45%정도에서 틀렸다고 했는데 else 부분에선 맨 뒤에 숫자가 1 뿐만아니라 홀수인 수들이 다 들어가서 나는 오류였다. s, e = map(int, input().split()) cnt = 1 while s < e: if e % 2 == 0: e //= 2 else: e //= 10 cnt += 1 if s == e: print(cnt) else: print(-1) ✅ 정답 코드 s, e = map(int, input().split()) cnt = 1 while s < e: if e % 2 == 0: e /= 2 cnt += 1 elif e % 10 == 1: e //= 10 cnt += 1 else: br.. 2023. 4. 12.