백준 8

[백준] 10866번 덱 - Python(파이썬)

https://www.acmicpc.net/problem/10866 10866번: 덱 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 문제 21.02.16 접근법 문제 그대로 if-else문으로 풀이 deque을 활용 21.02.16 코드 from collections import deque import sys N=int(input()) queue=deque([]) for i in range(N): cmd=sys.stdin.readline().split() if cmd[0]=='push_front': queue...

[백준] 1158번 요세푸스 문제 - Python(파이썬)

https://www.acmicpc.net/problem/1158 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net 문제 21.02.16 접근법 list보다 효율성있는 deque 선택 crt로 deque위치 현재 위치 파악 : 1씩 더하고, 맨 끝으로 가면 처음인 0번째로 초기화 ck로 T번째인지 체크 : 1씩 더하고, T가 되면 카운트 초기화 21.02.16 코드 from collections import deque N,T=map(int,input().split()) arr=deque([i for i in range(1,N+1)]) ck=0 crt=-1 answer=[] while arr: if(cr..

[백준] 10845번 큐 - Python(파이썬)

https://www.acmicpc.net/problem/10845 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 문제 21.02.12 접근법 큐는 줄서기로, 먼저 들어온 것이 먼저 나간다. 때문에 popleft가 있는 deque을 사용해서 하는 것이 좋다고 판단 21.02.12 코드 import sys from collections import deque N=int(input()) queue=deque([]) for i in range(N): comd=sys.stdin.readline().s..

[백준] 1406번 에디터 - Python(파이썬)

https://www.acmicpc.net/problem/1406 1406번: 에디터 첫째 줄에는 초기에 편집기에 입력되어 있는 문자열이 주어진다. 이 문자열은 길이가 N이고, 영어 소문자로만 이루어져 있으며, 길이는 100,000을 넘지 않는다. 둘째 줄에는 입력할 명령어의 개수 www.acmicpc.net 문제 21.02.12 접근법 첫 번째 시도 커서가 오른쪽에 위치하는 걸 디폴트 값으로 정하고 그 위치를 loca변수를 사용해 옮겨 다니고자 하였다. 또한, 커서가 맨 처음 왼쪽으로 가게 되어 시작에 커서가 위치하였을 때는 front변수로 구분을 하고자 하였다. 문자 삽입은 슬라이싱으로 코드를 구성하였지만, 시간 초과에서 걸려버렸다. 슬라이싱이 원인인 거 같았다. import sys n=list(in..

[백준] 1874번 스택 수열 - Python(파이썬)

https://www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 문제 21.02.12 접근법 1부터 num까지 계속 반복 1부터 push하고 + 저장 이후, stack에 마지막 저장된 것과 num 동일할 시 pop과 - 저장 하지만, 시간 초과로 실패 import sys n=int(input()) loca=0 check=[False for i in range(n+1)] answe..

[백준] 9012번 괄호 - Python(파이썬)

https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 문제 접근법 다음과 같은 조건들만 성립하는 지를 체크하면 될 것이라 판단하였다. 괄호를 열고 닫는 개수가 같아야 함. 열 땐 +1, 닫을 땐 -1 체크를 0으로 시작해 0으로 끝남을 확인 단, 닫음을 2번으로 하여 -1로 넘어가게 되면 한 쌍이 안됨으로 간주하고 바로 체크 종료 #알아야 할 중요 코드 개념# sys.stdin.readline().strip() 좌우 공..

[백준] 9093번 단어 뒤집기 - Python(파이썬)

https://www.acmicpc.net/problem/9093 9093번: 단어 뒤집기 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는 www.acmicpc.net 문제 접근법 한 줄을 입력을 받아 공백을 기준으로 리스트에 저장 순서대로 각 단어를 역순으로 출력 기억해야 할 공식 - s[j][::-1] 이는 역순 출력을 의미 +추가 print() 다음 줄로 보내주는 것 ⇒ 1줄만 아래로 감. print('\n') 다음 줄로 가고 또 띄어쓰기를 함. ⇒ 2줄 아래로 내려감. 21.02.09 코드 import sys T=int(input()) for i ..

[백준] 10828번 스택 - Python(파이썬)

https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 문제 접근법 stack은 짐정리 개념이다. 즉, 나중에 들어온 애가 먼저 나가기. 파이썬의 list는 pop을 갖고 있으며 마지막으로 저장된 아이를 내보낸다. 즉, list는 stack구조로 사용하기 적합 코드 import sys N=int(input()) stk=list() for i in range(N): cmd=sys.stdin.readline().split() if cmd..