본문 바로가기

Algorithm 💡/Implementation54

[백준 14503번] 로봇 청소기 n,m = map(int,input().split()) r,c,d = map(int,input().split()) # 현재 방향을 기준으로 반시계방향으로 탐색 dx = [[0,1,0,-1],[-1,0,1,0],[0,-1,0,1],[1,0,-1,0]] dy = [[-1,0,1,0],[0,-1,0,1], [1,0,-1,0],[0,1,0,-1]] # 바라보는 방향이 북쪽인 경우 # dx_0 =[0,1,0,-1] # dy_0 =[-1,0,1,0] # 바라보는 방향이 동쪽인 경우 # dx_1 = [-1,0,1,0] # dy_1 = [0,-1,0,1] # 바라보는 방향이 남쪽인 경우 # dx_2 = [0,-1,0,1] # dy_2 = [1,0,-1,0] # 바라보는 방향이 서쪽인 경우 # dx_3 = [1,0,-1.. 2023. 8. 9.
[백준 15662번] 톱니바퀴(2) t = int(input()) gear = [[0]*8 for _ in range(t)] rotate_list = [] answer = 0 for i in range(t): gear[i] = list(map(int,list(input()))) def rotate_right(lst): # 시계 방향으로 회전시키는 함수 lst.insert(0,lst.pop()) def rotate_left(lst): # 반시계 방향으로 회전시키는 함수 lst.append(lst.pop(0)) k = int(input()) for i in range(k): # 회전 목록 입력받고 저장 number, direction = map(int,input().split()) rotate_list.append((number-1,direc.. 2023. 8. 9.
[백준 14891번] 톱니바퀴 gear = [[0]*8 for _ in range(4)] rotate_list = [] score = 0 for i in range(4): gear[i] = list(map(int,list(input()))) def rotate_right(lst): # 시계 방향으로 회전시키는 함수 lst.insert(0,lst.pop()) def rotate_left(lst): # 반시계 방향으로 회전시키는 함수 lst.append(lst.pop(0)) k = int(input()) for i in range(k): # 회전 목록 입력받고 저장 number, direction = map(int,input().split()) rotate_list.append((number-1,direction,"both")) def .. 2023. 8. 9.
[백준 3190번] 뱀 from collections import deque n = int(input()) k = int(input()) area = [[0]*n for _ in range(n)] direction_list = [] time = 0 for _ in range(k): r,c = map(int,input().split()) area[r-1][c-1] = 1 l = int(input()) for _ in range(l): x, c = input().split() direction_list.append((int(x),c)) x, y = 0, 0 direction = "R" tail = deque([(0,0)]) index = 0 while 1: area[x][y] = -1 if time == direction_list.. 2023. 8. 6.
[백준 21608번] 상어 초등학교 n = int(input()) data = [[] for _ in range(n**2)] location = [[0]*n for _ in range(n)] dx = [-1,1,0,0] dy = [0,0,-1,1] like_dict = {} sequence = [] total = 0 for i in range(n**2): data[i] = list(map(int, input().split())) for i in range(n**2): sequence.append(data[i][0]) for j in range(1,5): if like_dict.get(data[i][0]) == None: like_dict[data[i][0]] = {data[i][j]} else: like_dict[data[i][0]].ad.. 2023. 7. 31.
[프로그래머스] 연속된 수의 합 def solution(num, total): answer = [] multiple = 0 if num%2 == 0: start_num = num//2 answer = [i for i in range(-(num//2)+1, num//2+1)] else: start_num = 0 answer = [i for i in range(-(num//2),num//2+1)] while(1): if start_num == total: answer = [i+multiple for i in answer] break start_num += num multiple += 1 return answer 이번 문제는 주어진 num개의 연속된 수의 합이 total이 되도록 하는 연속된 수로 이루어진 배열을 구하는 문제이다. 처음에는 .. 2023. 7. 23.