320x100 Blog189 [CLASS 2]백준 1966번, 2805번, 1929번 1966번 : 프린터 큐 상근이라는 친구가 프린터 소프트웨어를 만들었는데, 큐를 적용한듯 하다. 해당 문서가 몇 번째에 출력될 지 맞추면 된다. 처음에는 큐로 해야할듯 해서 collections의 deque를 사용했다. 그런데 나중에 그냥 list로 바꿔봤는데 오히려 속도가 약간 더 빨라졌다.. 내 코드(덱): from collections import deque import sys input = sys.stdin.readline for _ in range(int(input())): n, m = map(int,input().split()) queue = deque(list(map(int,input().split()))) count = 0 while True: if max(queue) > queue[0]:.. 2021. 1. 27. [CLASS 2]백준 11866번, 1654번, 1874번 11866번 : 요세푸스 문제 0 요세푸스 순열에 대한 설명이 나와 있고, N과 K 가 주어질 때 이 순열을 출력하면 된다. 내 코드: n,k = map(int,input().split()) arr = [True for _ in range(n)] li = [] idx = 0 for _ in range(n): count = 1 while True: if arr[idx]: if count < k: count += 1 idx = (idx + 1) % n else: arr[idx] = False li.append(str(idx+1)) break else: idx = (idx + 1) % n print('') 리스트를 마치 원형처럼 구현하기 위해서는 모듈러(나머지)연산을 이용하면 된다. 리스트의 끝에 도달할 때마.. 2021. 1. 27. [CLASS 2]백준 10828번, 10845번, 10866번 - 스택, 큐, 덱 10828번 : 스택 스택을 구현하면 된다. 파이썬의 경우 list를 사용하여 push와 pop을 각각 append와 pop을 이용하여 간단하게 구현할 수 있다. 내 코드: import sys input = sys.stdin.readline stack = [] for _ in range(int(input())): cmd = input().split() if cmd[0] == 'push': stack.append(int(cmd[1])) elif cmd[0] == 'pop': if stack: print(stack.pop()) else: print(-1) elif cmd[0] == 'size': print(len(stack)) elif cmd[0] == 'empty': print(int(not bool(st.. 2021. 1. 25. [CLASS 2]백준 4949번, 9012번, 10773번, 10816번 4949번 : 균형잡힌 세상 괄호의 균형(?)을 맞추는 문제이다. 스택을 이용한다면 쉽게 풀 수 있다. 파이썬은 스택을 따로 모듈로 제공하지는 않고 대신 list의 pop과 append를 사용한다면 스택처럼 사용할 수 있다. 내 코드: def balanced(string): stack = [] for char in string: if char == '(' or char =='[': stack.append(char) elif char == ')' or char == ']': if stack: if char == ')' and stack.pop() != '(': return 'no' elif char == ']' and stack.pop() != '[': return 'no' else: return 'no'.. 2021. 1. 25. 이전 1 ··· 28 29 30 31 32 33 34 ··· 48 다음