본문 바로가기

전체 글

(227)
20055번: 컨베이어 벨트 위의 로봇 / gold 5 / 시뮬레이션 https://www.acmicpc.net/problem/20055 20055번: 컨베이어 벨트 위의 로봇 길이가 N인 컨베이어 벨트가 있고, 길이가 2N인 벨트가 이 컨베이어 벨트를 위아래로 감싸며 돌고 있다. 벨트는 길이 1 간격으로 2N개의 칸으로 나뉘어져 있으며, 각 칸에는 아래 그림과 같이 1부 www.acmicpc.net ''' 20055번: 컨베이어 벨트 위의 로봇 / gold 5 / 시뮬레이션 ''' import sys from collections import deque input = sys.stdin.readline N, K = map(int, input().split()) convey = list(map(int, input().split())) convey = deque(convey)..
17135번: 캐슬 디펜스 / gold 3 / 조합, copy, 시뮬레이션 https://www.acmicpc.net/problem/17135 17135번: 캐슬 디펜스 첫째 줄에 격자판 행의 수 N, 열의 수 M, 궁수의 공격 거리 제한 D가 주어진다. 둘째 줄부터 N개의 줄에는 격자판의 상태가 주어진다. 0은 빈 칸, 1은 적이 있는 칸이다. www.acmicpc.net ''' 17135번: 캐슬 디펜스 / gold 3 / 조합, copy, 시뮬레이션 ''' import sys import itertools import copy input = sys.stdin.readline def simulation(case, enemy): count = 0 visited = [False for _ in range(len(enemy))] visited_cnt = 0 while True: ..
2529번: 부등호 / silver 1 / 백트래킹, 브루트포스 https://www.acmicpc.net/problem/2529 2529번: 부등호 여러분은 제시된 부등호 관계를 만족하는 k+1 자리의 최대, 최소 정수를 첫째 줄과 둘째 줄에 각각 출력해야 한다. 단 아래 예(1)과 같이 첫 자리가 0인 경우도 정수에 포함되어야 한다. 모든 입력 www.acmicpc.net ''' 2529번: 부등호 / silver 1 / 백트래킹, 브루트포스 ''' def dfs(num, depth): # 종료조건 if depth == k: all_case.append(num) return if inequality[depth] == '>': for i in range(10): if i in remain and int(num[-1]) > i: remain.remove(i) dfs(..
16639번: 괄호 추가하기 3 / gold 1 / DP https://www.acmicpc.net/problem/16639 16639번: 괄호 추가하기 3 길이가 N인 수식이 있다. 수식은 0보다 크거나 같고, 9보다 작거나 같은 정수와 연산자(+, -, ×)로 이루어져 있다. 곱하기의 연산자 우선순위가 더하기와 빼기보다 높기 때문에, 곱하기를 먼저 계 www.acmicpc.net ''' 16639번: 괄호 추가하기 3 / gold 1 / DP ''' import sys input = sys.stdin.readline # a와 b를 계산해서 리턴하는 함수 def calculator(a, op, b): if op == '-': return a - b elif op == '+': return a + b elif op == '*': return a * b # dp..
7785번: 회사에 있는 사람 / silver 5 / 구현 https://www.acmicpc.net/problem/7785 7785번: 회사에 있는 사람 첫째 줄에 로그에 기록된 출입 기록의 수 n이 주어진다. (2 ≤ n ≤ 106) 다음 n개의 줄에는 출입 기록이 순서대로 주어지며, 각 사람의 이름이 주어지고 "enter"나 "leave"가 주어진다. "enter"인 경우는 www.acmicpc.net ''' 7785번: 회사에 있는 사람 / silver 5 / 구현 ''' n = int(input()) company = set() for _ in range(n): name, state = map(str, input().split()) if state == 'enter': company.add(name) elif state == 'leave': compan..
16637번: 괄호 추가하기 / gold 3 / 브루트포스 https://www.acmicpc.net/problem/16637 16637번: 괄호 추가하기 길이가 N인 수식이 있다. 수식은 0보다 크거나 같고, 9보다 작거나 같은 정수와 연산자(+, -, ×)로 이루어져 있다. 연산자 우선순위는 모두 동일하기 때문에, 수식을 계산할 때는 왼쪽에서부터 순 www.acmicpc.net ''' 16637번: 괄호 추가하기 / gold 3 / 브루트포스 ''' import sys import itertools input = sys.stdin.readline # a와 b를 연산해주고 결과를 리턴하는 함수 def calculator(a, op, b): if op == '+': return a + b elif op == '-': return a - b elif op == '..
3109번: 빵집 / gold 2 / DFS, 그리디 https://www.acmicpc.net/problem/3109 3109번: 빵집 유명한 제빵사 김원웅은 빵집을 운영하고 있다. 원웅이의 빵집은 글로벌 재정 위기를 피해가지 못했고, 결국 심각한 재정 위기에 빠졌다. 원웅이는 지출을 줄이고자 여기저기 지출을 살펴보던 www.acmicpc.net ''' 3109번: 빵집 / gold 2 / DFS, 그리디 ''' import sys input = sys.stdin.readline dx = [-1, 0, 1] def solve(x, y): if y == C - 1: return True for i in range(3): nx = dx[i] + x if 0 오른쪽으로 생성하는 문제였지만, graph에서 파이프가 위->아래로 생성하는 것으로 이해했던 것! - ..
5014번: 스타트링크 / silver 1 / BFS https://www.acmicpc.net/problem/5014 5014번: 스타트링크 첫째 줄에 F, S, G, U, D가 주어진다. (1 ≤ S, G ≤ F ≤ 1000000, 0 ≤ U, D ≤ 1000000) 건물은 1층부터 시작하고, 가장 높은 층은 F층이다. www.acmicpc.net ''' 5014번: 스타트링크 / silver 1 / BFS ''' from collections import deque # 입력받기 max_floor, start, end, up, down = map(int, input().split()) # que, visited 리스트 선언 및 초기화 que = deque() visited = list(0 for _ in range(max_floor + 1)) que.a..