[백준/Python] 10773. 제로
·
코딩테스트/BAEKJOON
1. 유형: 스택  2. 문제  3. 풀이 기본적인 스택 연산 구현 연습import sysK = int(sys.stdin.readline())stck = []for i in range(K): n = int(sys.stdin.readline()) if n == 0: if stck: stck.pop() else: continue else: stck.append(n)print(sum(stck))
[백준/ Python] 28278. 스택2
·
코딩테스트/BAEKJOON
문제 풀이 코드 기본적으로 스택 연산 사용할 줄 알면, 쉽게 풀리는 문제였다!대신, 입력 양이 너무 커지면 문제가 생기길래 이 부분에 대해 알아보니, import sys n = int(sys.stdin.readline()) 이걸 사용하면 빠르게 입력을 받을 수 있다고 한다.풀다가 영 답이 안 보이면 이렇게도 해봐야지 #N = int(input())import sysN = int(sys.stdin.readline())stack = []for i in range(N): n = sys.stdin.readline().split() # n, x = map(int, input().split(" ")) if n[0] == "1": stack.append(n[-1]) elif n[0]..
[백준/Python] 1449번. 수리공 항승
·
코딩테스트/BAEKJOON
📌 문제유형: 탐욕법(그리디) 📌 문제링크 https://www.acmicpc.net/problem/1449 📌 풀이코드 N, L = map(int, input().split())holes = list(map(int, input().split()))covered = [0 for _ in range(len(holes))]holes.sort()count = 0for i, h in enumerate(holes): able = [(h-0.5), (h-0.5) + L] # 커버 가능한 범위 if not covered[i]: covered[i] = 1 count += 1 for j in range(i+1, len(holes)): if able..
[백준/Python] 3085. 사탕게임
·
코딩테스트/BAEKJOON
📌 문제유형: 브루트포스 📌  문제설명: 링크참조 https://www.acmicpc.net/problem/3085 📌  풀이코드 # 2:27 startdef search(): global answer # 가로, 세로로 가장 긴 연속 부분을 찾아야 함 # 1. 행 쪽 for i in range(N): cnt = 1 # 1로 시작해야 마지막까지 셀 수 있다. for j in range(N-1): if arr[i][j] == arr[i][j+1]: cnt += 1 answer = max(answer, cnt) else: # 연속을 찾아야 되는데, 중간에 끊기면..
[백준/Python] 3040. 백설 공주와 일곱 난쟁이
·
코딩테스트/BAEKJOON
🍀 문제유형: 브루트포스/ DFS 🍀  문제설명(링크참조) https://www.acmicpc.net/problem/3040🍀  풀이코드 # 방법1. DFS # 11:35 start 56 end# dfs..def dfs(i, total, result, cnt): global answer if cnt == 7: if total == 100 : answer = result return if i == 9: return # cnt = 7 이지만 100이 아니면 멈춰야 해 #i 포함 X dfs(i+1, total, result, cnt) #i 포함 O dfs(i+1, total+nums[i], result+..
[백준/Python] 2075. N번째 큰 수
·
코딩테스트/BAEKJOON
🍀 문제유형: 최소힙🍀 문제설명 (링크 참조) https://www.acmicpc.net/problem/2075 🍀 풀이코드 - 첫 시도는 최대 힙 만들어서 n번째 뽑아야지! 했는데 메모리 초과 ~.~import heapq as hqn = int(input())h = []for _ in range(n): tmp = list(map(int, input().split())) for t in tmp: hq.heappush(h, -t)print(-h[n-1]) - 그래서 뭐 어떻게 해야 되지.. 하다가, 최소힙을 각 행마다 만드는 것도 무리일 것 같고,, 고민하다가 해설집 힌트 조금 봤다. n번째로 큰 수는, 가장 큰 수 n개 중에 제일 작은 값이다의 다른 말.. 와우 아이디어,,-..