전체 글

전체 글

    시뮬레이션과 구현) 20057.마법사 상어와 토네이도

    20057번: 마법사 상어와 토네이도 (acmicpc.net) 20057번: 마법사 상어와 토네이도 마법사 상어가 토네이도를 배웠고, 오늘은 토네이도를 크기가 N×N인 격자로 나누어진 모래밭에서 연습하려고 한다. 위치 (r, c)는 격자의 r행 c열을 의미하고, A[r][c]는 (r, c)에 있는 모래의 양을 www.acmicpc.net # 회전 : 가운데 칸부터 시작해서, 계속해서 방향을 90도 반시계 방향 회전하며 이동하다가, 회전해서 이동할 칸이 이미 처리한 칸이면 회전하지 않는 방식으로 탐색 # 모래 : 모래의 이동과 비율은 기준이 되는 방향을 하나 미리 구하고(좌) 그 기준을 계속해서 90도 반시계 방향 회전 시키면 4가지 방향(상,하,좌,우)에 대한 이동과 기준 구할 수 있다. # 방향 : 방..

    브루트포스) 16637.괄호 추가하기

    16637번: 괄호 추가하기 (acmicpc.net) 16637번: 괄호 추가하기 첫째 줄에 수식의 길이 N(1 ≤ N ≤ 19)가 주어진다. 둘째 줄에는 수식이 주어진다. 수식에 포함된 정수는 모두 0보다 크거나 같고, 9보다 작거나 같다. 문자열은 정수로 시작하고, 연산자와 정수가 www.acmicpc.net # solution. # 비트마스크, 브루트포스 문제 # 연산자의 개수 m=(n-1)/2 이고, n은 19 이하이므로, m의 최댓값은 9다. # 시간복잡도 : 각 연산자가 괄호에 포함되는지 아닌지로 구분되기에, 모든 경우의 수는 최대 2^9=512 이다. # 각 자리의 연산자가 포함되면 1로, 포함되지 않으면 0으로 생각하여, 비트마스크로 구분한다. # 각 괄호는 연산자를 하나만 포함할 수 있으..

    브루트포스) 17406.배열 돌리기 4

    17406번: 배열 돌리기 4 (acmicpc.net) 17406번: 배열 돌리기 4 크기가 N×M 크기인 배열 A가 있을때, 배열 A의 값은 각 행에 있는 모든 수의 합 중 최솟값을 의미한다. 배열 A가 아래와 같은 경우 1행의 합은 6, 2행의 합은 4, 3행의 합은 15이다. 따라서, 배열 A의 www.acmicpc.net from itertools import permutations from collections import deque from copy import deepcopy n,m,k= map(int,input().split()) a=list(list(map(int,input().split())) for _ in range(n)) ops=list(list(map(int,input().spl..

    브루트 포스) 20058.마법사 상어와 파이어스톰

    20058번: 마법사 상어와 파이어스톰 (acmicpc.net) 20058번: 마법사 상어와 파이어스톰 마법사 상어는 파이어볼과 토네이도를 조합해 파이어스톰을 시전할 수 있다. 오늘은 파이어스톰을 크기가 2N × 2N인 격자로 나누어진 얼음판에서 연습하려고 한다. 위치 (r, c)는 격자의 r행 c www.acmicpc.net from collections import deque input_n,q = map(int,input().split()) n=2**input_n a=[list(map(int,input().split())) for _ in range(n)] ls=list(map(int,input().split())) dx=[-1,0,1,0] dy=[0,-1,0,1] # 매트릭스 시계방향 90도 회전 ..

    [Python] 알파벳 자동 생성 방법(리스트, 딕셔너리 등)

    https://angelplayer.tistory.com/193 [Python] 알파벳 자동 생성 방법(리스트, 딕셔너리 등) 코딩 테스트나 과제 수행 시 알파벳의 갯수 등의 파악을 위해 알파벳 리스트가 필요한 경우가 있습니다. alphabet_list = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q'.. angelplayer.tistory.com

    BFS) 2234.성곽

    https://www.acmicpc.net/problem/2234 2234번: 성곽 첫째 줄에 두 정수 N, M이 주어진다. 다음 M개의 줄에는 N개의 정수로 벽에 대한 정보가 주어진다. 벽에 대한 정보는 한 정수로 주어지는데, 서쪽에 벽이 있을 때는 1을, 북쪽에 벽이 있을 때는 2를, www.acmicpc.net from collections import deque # 서, 북, 동, 남. # 비트마스크로 벽 존재 여부를 체크해야 하므로, 위의 순서대로 0,1,2,3 으로 for문을 돌게 하여, # 2^0=1, 2^1=2, 2^2=4, 2^3=8 값이 포함되어 있는지 & 연산으로 검사한다. dx=[0,-1,0,1] dy=[-1,0,1,0] m,n=map(int,input().split()) a=[li..