목록Python (84)
기록방
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ydCfJ/btrJmxGsRll/BCrW9KfJl42zhjHGN7NVK0/img.png)
👉 문제링크 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net 🔸 문제 분석 🔸 숫자를 입력받다가 0이 입력되면 최근 값을 제외한다. 입력받은 숫자의 총 합을 출력한다. 🔸 코드 🔸 import sys from collections import deque input = sys.stdin.readline K = int(input().strip()) d = deque() for i in range(K): n = int(input().strip()) if n == 0: d.pop() ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cHRZaV/btrJeqhrMlP/yw3exbilUIWRkdJsfIQi50/img.png)
👉 문제링크 4949번: 균형잡힌 세상 하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 각 줄은 마침표(".")로 끝난다 www.acmicpc.net 🔸 문제 분석 🔸 문자열을 처리와 스택 활용이 합쳐져있는 문제이다. 🔸 코드 🔸 import sys input = sys.stdin.readline while(True): ss = input().rstrip() if ss == ".": break stack = [] check = False for c in ss: if c == '(' or c == '[': stack.append(c) elif c == ')': if len(st..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bSNtNo/btrI7L6gasE/p6FDi8jOMK56cM0TuNvTY0/img.png)
👉 문제링크 7568번: 덩치 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩 www.acmicpc.net 🔸 문제 분석 🔸 각 입력마다 덩치 등수를 출력한다. 덩치 등수는 '자기보다 덩치가 큰 인원의 수 + 1' 등이다. 덩치는 몸무게, 키 모두 커야 큰 것이다. 선택 정렬과 같은 방식인 것 같다. 🔸 코드 🔸 N = int(input()) arr = [] for i in range(N): arr.append(list(map(int,input().split()))) answer = [1] * len(arr) for i in range(len..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/csYWRK/btrI4UCBK0I/6lZiYJb1QM9LCHdkAgGQTK/img.png)
👉 문제링크 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 🔸 문제 분석 🔸 괄호의 쌍을 확인하는 전형적인 스택 문제이다. 🔸 코드 🔸 T = int(input()) for i in range(T): S = input() arr = S[0] flag = False for j in S[1:]: if j == '(': arr += j else: if len(arr) == 0 or arr[-1] == ')': flag = True break else : arr = arr[:-1] i..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bEMXyu/btrI6rfQ6z2/rSf3qHsdKKmEgb3xDKABx1/img.png)
👉 문제링크 2869번: 달팽이는 올라가고 싶다 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) www.acmicpc.net 🔸 문제 분석 🔸 V미터 나무를 낮에 A미터 오르고, 밤에 B미터 미끌어떨어진다. 몇 일만에 나무를 다 오르는지 구한다. A, B, V 의 범위가 10억까지 가므로 단순 반복을 하면 시간초과가 난다. 🔸 코드 🔸 import math A, B, V = map(int, input().split()) print(math.ceil((V-A)/(A-B)) + 1) 🔸 코드 해석 🔸 하루하루 계산을 새는게 아니라 값의 차이를 나누고 반올림해서 일수를 구했다. math 모듈의 ceil함수는 올림 함수이다. V-A : ..