본문 바로가기

오블완

[백준] 11659번: 구간 합 구하기 4(파이썬) https://www.acmicpc.net/problem/11659 문제의 조건을 보고 입력이 들어올 때마다 단순하게 반복문으로 구현하면 시간초과가 뜰 것이 뻔하기 때문에 DP로 해결해야 한다는 것이라고 생각했다.arr이 주어지면 일단 1부터 n까지 해당 값까지 구했을 때의 값을 dp에 저장한다.만약 arr에서 2부터4까지의 값의 합을 구하고 싶을 때는 (4까지 구했을 때의 합 - 1까지 구했을 때의 합) 이다. n,m = map(int,input().split())arr = list(map(int,input().split()))dp = [0]sum = 0for x in arr: sum += x dp.append(sum)#print(dp)for i in range(m): i,j = map.. 더보기
[백준] 16506번: CPU(파이썬) https://www.acmicpc.net/problem/16506 구현 문제여서 노가다성 문제인듯하다num = int(input())opcode_machine = {'ADD':'0000', 'SUB':'0001', 'MOV':'0010', 'AND':'0011','OR':'0100', 'NOT':'0101','MULT':'0110', 'LSFTL':'0111', 'LSFTR':'1000', 'ASFTR':'1001','RL':'1010','RR':'1011'}for i in range(num): opcode, x, y, z = input().split() result = '' if opcode[-1]=='C': .. 더보기
[백준] 3986번: 좋은 단어(파이썬) https://www.acmicpc.net/problem/3986 처음에 스택 개념을 생각을 못해서 삽질하다가 결국 다른사람의 코드를 참고했다.괄호가 올바른지 판단하는 문제에서 괄호를 알파벳으로 바꾼 문제이다.아직 기본이 많이 부족하다는게 느껴진다..n= int(input())ans =0for _ in range(n): stack = [] _list = list(input()) for i in _list: if not len(stack): stack.append(i) elif stack[-1] == i: stack.pop(-1) else: stack.append(i) if not len(.. 더보기
[백준] 13567번: 로봇 https://www.acmicpc.net/problem/13567 m,n = map(int,input().split())dir = [[1,0],[0,1],[-1,0],[0,-1]] #동,북,서,남pos = [0,0]count = 0for i in range(n): command, num = map(str, input().split()) if command == 'MOVE': pos[0] += dir[count][0] * int(num) pos[1] += dir[count][1] * int(num) #좌표 넘어갈 시 if pos[0] m or pos[1] m: print(-1) exit() .. 더보기