16637번 / 괄호 추가하기 - 파이썬
https://www.acmicpc.net/problem/16637 16637번: 괄호 추가하기 길이가 N인 수식이 있다. 수식은 0보다 크거나 같고, 9보다 작거나 같은 정수와 연산자(+, -, ×)로 이루어져 있다. 연산자 우선순위는 모두 동일하기 때문에, 수식을 계산할 때는 왼쪽에서부터 순 www.acmicpc.net 소스코드 def calcpart(n1,n2,ex): if ex == '+': return n1+n2 elif ex == '-': return n1-n2 elif ex == '*': return n1*n2 def recursive(numQue,exQue,start): commands = [] def generate(numQue,start,init_command): if start >= ..
더보기
배열 돌리기 4 - 파이썬
def permutation2(arr, length): #조합 [1,2,3],2 => [1,2],[1,3],[2,1],[2,3],[3,1],[3,2] used = [0 for _ in range(len(arr))] returnArr = [] def generate(chosen): if len(chosen) == length: returnArr.append(chosen[:]) return for i in range(len(arr)): if used[i] == 0: #아직 사용 안됨 used[i] = 1 chosen.append(arr[i]) generate(chosen) chosen.pop() used[i] = 0 generate([]) return returnArr def rotate2(arr,case)..
더보기
마법사 상어와 비바라기 - 파이썬
N,M = map(int,input().split()) baskets = [] for i in range(N): baskets.append(list(map(int,input().split()))) # clouds = [[0 for _ in range(N)] for _ in range(N)] # clouds[N-1][0], clouds[N-1][1], clouds[N-2][0],clouds[N-2][1] = 1,1,1,1 clouds = [[N-1,0],[N-1,1],[N-2,0],[N-2,1]] dx = [0,-1,-1,-1,0,1,1,1] dy = [-1,-1,0,1,1,1,0,-1] for _ in range(M): d,s = map(int, input().split()) # print(clouds)..
더보기
n*n 2차원 배열 달팽이 알고리즘 - 파이썬
n이 홀수인 경우 그리고 n*n인 2차원 배열인 경우에만 사용할 수 있는 코드 일듯하다. 달팽이가 벽에 부딪히거나 방향을 바꿔야 하는 경우 바뀔 방향은 고정적이라는 특성을 활용했다. import copy n = int(input()) arr = [[0 for _ in range(n)] for _ in range(n)] dx = [0,-1,1,0,0] dy = [0,0,0,-1,1] check_arr = copy.deepcopy(arr) check_arr[0][0] = 1 move_path_back=[[0,0,2]] move_path_start=[[n//2,n//2,1]] while True: before = move_path_back[-1] way = before[2] curr = [before[0]+d..
더보기