https://school.programmers.co.kr/learn/courses/30/lessons/42584 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 초 단위로 기록된 주식 가격이 떨어지지 않은 기간이 몇 초인지 구하는 문제 prices return [1, 2, 3, 2, 3] [4, 3, 1, 1, 0] 1초 시점의 ₩1은 끝까지 가격이 떨어지지 않았습니다. 2초 시점의 ₩2은 끝까지 가격이 떨어지지 않았습니다. 3초 시점의 ₩3은 1초뒤에 가격이 떨어집니다. 따라서 1초간 가격이 떨어지지 않은 것으로 봅니다. 4초 시점의 ₩2은 ..
deque 스택은 후입선출, 큐는 선입선출의 특징을 가지고 있고 이는 deque를 이용하여 사용가능함 선언 from collections import deque a = [i for i in range(10)] a = deque(a) b = deque('hello python') print(a, b) deque([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) deque(['h', 'e', 'l', 'l', 'o', ' ', 'p', 'y', 't', 'h', 'o', 'n']) pop() 스택은 후입선출이기 때문에 마지막에 들어있는 데이터가 출력됨 from collections import deque a = [i for i in range(10)] a = deque(a) b = deque('hel..
https://school.programmers.co.kr/learn/courses/30/lessons/42583 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나의 풀이 처음에는 묶음 단위로 차가 지나가는 줄 알고 그에 맞게 코드를 작성했었음 1 2 3 7 4,5 6 묶음 단위로 문제 풀고 위의 방식이 아니라 첫 번째 차가 빠져나가고 weight를 비교하여 바로 새로운 차가 들어가는 구조인걸 알았음 truck_weights = [1,8,1,1,5,1] weight = 10 bridge_length = 4 시간 1 1 2 8 1 3 1 8 1 4 1 8 ..
https://www.acmicpc.net/problem/10773 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net 재현이가 잘못된 수를 부를 때마다 0을 외쳐서 잘못된 수를 지우는 문제 import sys loop = int(sys.stdin.readline()) cal = list() for _ in range(loop): num = int(sys.stdin.readline()) if num == 0: cal.pop() else: cal.append(num) print(su..
Stack을 class로 구현해볼 것이다. 파이썬의 list의 메소드를 가지고도 stack 처럼 쓸 수 있음 설계 https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net push X: 정수 X를 스택에 넣는 연산이다. pop: 스택에서 가장 위에 있는 정수를 빼고, 그 수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다. size: 스택에 들어있는 정수의 개수를 출력한다. empty: 스택이 비어있으면 1, 아..
https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 나의 풀이 스택 구현 문제로 push X: 정수 X를 스택에 넣는 연산이다. pop: 스택에서 가장 위에 있는 정수를 빼고, 그 수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다. size: 스택에 들어있는 정수의 개수를 출력한다. empty: 스택이 비어있으면 1, 아니면 0을 출력한다. top: 스택의 가장 위에 있는 정수를 출력한다. 만약 스택에 들..
https://www.acmicpc.net/problem/5622 5622번: 다이얼 첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 단어의 길이는 2보다 크거나 같고, 15보다 작거나 같다. www.acmicpc.net 나의 풀이 주어진 문자의 다이얼을 돌릴 때 시간이 얼마나 걸리는지 구하는 문제 1의 경우 2초의 시간이 걸리고 2의 경우 3초의 시간이 걸림 num = input() dialog = dict(A=3,B=3,C=3,D=4,E=4,F=4,G=5,H=5,I=5,J=6,K=6,L=6,M=7,N=7,O=7,P=8,Q=8,R=8,S=8,T=9,U=9,V=9,W=10,X=10,Y=10,Z=10) answer = 0 for n in num: answer+= dialog[n] print(answe..