본문 바로가기

알고리즘21

쇠막대기(스택) 인프런 김태원님의 파이썬 알고리즘 문제풀이 강의를 듣고 작성한 글입니다. https://inf.run/k3z6 파이썬 알고리즘 문제풀이 (코딩테스트 대비) - 인프런 | 강의 파이썬을 이용한 코딩테스트 문제풀이를 합니다., - 강의 소개 | 인프런... www.inflearn.com 내 풀이 ( 정답 아님 ) s = input() stack = [] res = 0 for i in s: if i == "(": stack.append(i) else: #이 부분이 오류인데 stack[-1]을 하면 닫힌 괄호가 연속일때 count 할 수 없음 if stack[-1] == "(": stack.pop() res += len(stack) else: stack.pop() res += 1 print(res) 주석 부분의.. 2022. 3. 30.
가장 큰 수(스택) 인프런 김태원님의 파이썬 알고리즘 문제풀이를 듣고 작성한 글입니다. https://inf.run/Uiep 파이썬 알고리즘 문제풀이 (코딩테스트 대비) - 인프런 | 강의 파이썬을 이용한 코딩테스트 문제풀이를 합니다., - 강의 소개 | 인프런... www.inflearn.com #강의 풀이 num, m = map(int, input().split()) num = list(map(int, str(num))) stack = [] for x in num: while stack and m>0 and stack[-1] 2022. 3. 27.
역수열 (그리디) 인프런 김태원님의 파이썬 알고리즘 문제풀이를 보고 작성한 글입니다. https://inf.run/Uiep 파이썬 알고리즘 문제풀이 (코딩테스트 대비) - 인프런 | 강의 파이썬을 이용한 코딩테스트 문제풀이를 합니다., - 강의 소개 | 인프런... www.inflearn.com 나는 이번 문제를 보고 푸는 방법은 떠올렸으나 코드 구현이 아직도 제대로 안된다.. #내 풀이 n = int(input()) rev = list(map(int ,input().split())) a = [0] * n print(rev) print(a) cnt = 0 for i in range(1, n+1): tmp = rev[i-1] for j in range(len(a)): if a[j] == 0: cnt += 1 if tmp =.. 2022. 3. 26.
회의실 배정(그리디) 인프런 김태원님의 파이썬 알고리즘 문제풀이 강의를 듣고 작성한 글입니다. https://inf.run/Uiep 파이썬 알고리즘 문제풀이 (코딩테스트 대비) - 인프런 | 강의 파이썬을 이용한 코딩테스트 문제풀이를 합니다., - 강의 소개 | 인프런... www.inflearn.com 고민을 했는데 가장 빨리 끝나는 회의를 계속 먼저 잡으면 될것 같다는 생각을 했으나 코드가 깔끔하게 나오지않아서 강의를 봤다. #강의 풀이 n = int(input()) meeting = [] for i in range(n): s, e = map(int, input().split()) meeting.append((s, e)) meeting.sort(key=lambda x: (x[1], x[0])) print(meeting) .. 2022. 3. 26.
마구간 정하기 (결정알고리즘, 이분탐색) 인프런 김태원님의 파이썬 알고리즘 문제풀이를 듣고 작성한 글입니다. https://inf.run/Uiep 파이썬 알고리즘 문제풀이 (코딩테스트 대비) - 인프런 | 강의 파이썬을 이용한 코딩테스트 문제풀이를 합니다., - 강의 소개 | 인프런... www.inflearn.com 후... 어렵다. 문제들이 다 비슷한데 머릿속 생각을 코드구현하기가 쉽지않아서 강의를 봤다. #강의 풀이 def Count(len): cnt = 1 ep = Line[0] for i in range(1, n): if Line[i]-ep >= len: cnt += 1 ep = Line[i] return cnt n, c = map(int, input().split()) Line = [] for _ in range(n): tmp = i.. 2022. 3. 24.
랜선자르기 (결정알고리즘, 이분탐색) 인프런 김태원님의 파이썬 알고리즘 문제풀이를 듣고 작성한 글입니다. https://inf.run/Uiep 파이썬 알고리즘 문제풀이 (코딩테스트 대비) - 인프런 | 강의 파이썬을 이용한 코딩테스트 문제풀이를 합니다., - 강의 소개 | 인프런... www.inflearn.com #내 풀이 k, n = map(int, input().split()) a = [] for i in range(k): a.append(int(input())) start = max(a)//2 while True: cnt = 0 for x in a: cnt += x//start if cnt == n: break elif cnt > n: start += 1 else: start -= 1 print(start) 내 방식대로 문제를 풀어봤.. 2022. 3. 24.