알고리즘/백준 문제풀이
[백준] 9012 괄호 파이썬 풀이 (스택)
2021.06.21
코드 num= int(input()) for i in range(num): brackets = list(input()) # print(brackets) stack = 0 for bracket in brackets: if bracket == '(': stack+=1 # print(f'(이 나오면{stack}') else: stack -=1 # print(f')이 나오면{stack}') if stack
알고리즘/백준 문제풀이
[백준] 10773 제로 파이썬 풀이 (스택)
2021.06.21
코드 import sys num= int(sys.stdin.readline()) total = [] max = 0 for i in range(num): money = int(sys.stdin.readline()) if money > 0: total.append(money) max+=money else: max-=total[-1] total.pop() print(max) 풀이 0을 부르지 않으면 total 배열에 부른 수를 append하고 max(총 합)에 부른 수를 더한다 0을 부르면 total에서 마지막에 부른 수를 없앤다. 그리고 max에서도 빼준다.
알고리즘/백준 문제풀이
[백준] 10828 스택 파이썬 풀이 (스택)
2021.06.21
코드 import sys stack = [] num= int(sys.stdin.readline()) #input()을 쓰면 시간 초과 for i in range(num): order = sys.stdin.readline().split() #공백 기준으로 띄워서 배열로 들어감 if order[0] == 'push': stack.append(order[1]) elif order[0] == 'top': if len(stack)>0: print(stack[-1]) else: print(-1) elif order[0] == 'size': print(len(stack)) elif order[0] == 'pop': if len(stack)>0: print(stack[-1]) stack.pop(-1) else: pri..
알고리즘/백준 문제풀이
[백준] 11651 좌표 정렬하기 2 파이썬 풀이 (정렬)
2021.06.21
코드 num = int(input()) dot_list = [] for i in range(num): dots = list(map(int,input().split())) dot_list.append(dots) dot_list.sort(key=lambda x:(x[1],x[0])) for i in dot_list: print(i[0],i[1]) 풀이 이렇게 입력을 받으면 dot_list에 이렇게 저장이 된다. y좌표가 증가하는 순서에 따라, x좌표가 증가하는 순서에 따라 정렬했다.
알고리즘/백준 문제풀이
[백준] 11729 하노이탑 이동 순서 파이썬 풀이 (재귀)
2021.06.21
코드 def hanoi(disk, start, mid, end): if disk == 1: print(start, end) else: hanoi(disk - 1, start, end, mid) print(start, end) hanoi(disk - 1, mid, start, end) total_disk = int(input()) total_mvmt = 0 for disk in range(total_disk): total_mvmt = total_mvmt * 2 total_mvmt += 1 print(total_mvmt) hanoi(total_disk, 1, 2, 3) 풀이 하노이탑 옮기기의 원리이다 5개의 탑을 3번으로 옮기려면 일단 4개를 중간으로 옮겨놓고 5번을 3번으로 옮긴다음 중간에 있던 4개를 3..