본문 바로가기

Algorithm(BOJ, Python)/Simulation9

[백준_20055] 컨베이어 벨트 위의 로봇 python # n, k 입력 n, k = map(int, input().split()) # num_list 입력 num_list = list(map(int, input().split())) # up 설계 [내구도, 로봇 유무] up = [ [0 for _ in range(2)] for _ in range(n) ] for i in range(n): up[i][0] = num_list[i] # down 설계 down = [] for i in range(2*n-1, n-1, -1): down.append(num_list[i]) # 함수들 # zero_more_than_k() def zero_more_than_k(): # 내구도 0인 칸의 개수 zero_cnt = 0 for i in range(n): # up의 내구도가 .. 2022. 9. 21.
[백준_15662] 톱니바퀴2 python 톱니바퀴 1에서 인덱싱 처리만 더 요하는 문제였다 개꿀 ㅋ # t 입력 t = int(input()) # 톱니바퀴를 담아 줄 리스트 gears = [ [0] * 8 for _ in range(t) ] # 톱니바퀴 담아주기 for i in range(t): gear = input() for j in range(8): gears[i][j] = int(gear[j]) # 함수들 # is_connected(before_gear, after_gear) def is_connected(before_gear, after_gear): return gears[before_gear][2] != gears[after_gear][6] # cw(change_num) def cw(change_num): # 전역 변수 선언 glob.. 2022. 9. 18.
[백준_14891] 톱니바퀴 python 시뮬레이션이 짜증나는건, 분명 풀 수 있는데, 너무하기 귀찮다는 것 같다. # 톱니바퀴의 정보를 담아 줄 리스트 gears = [0, [], [], [], []] # 톱니바퀴 입력 for i in range(1, 5): gear = input() for j in gear: gears[i].append(int(j)) # 함수들 # is_connected(gear_front, gear_back) def is_connected(gear_front, gear_back): return gears[gear_front][6] != gears[gear_back][2] # cw(gear) def cw(gear): # 전역 변수 선언 global gears # temp temp = gears[gear][-1] # 돌려주기.. 2022. 9. 17.
[백준_2174] 로봇 시뮬레이션 python dx, dy 테크닉을 이해하고 있으면, 그리 어렵지 않게 해결할 수 있는 문제였다. # a, b 입력 a, b = map(int, input().split()) # n, m 입력 n, m = map(int, input().split()) # 로봇들의 정보를 담아 줄 리스트 robot_data = [0] # mapper mapper = { 'N': 0, 'E': 1, 'S': 2, 'W': 3, } # 리스트에 로봇들 정보 담아주기 for _ in range(n): x, y, dir = input().split() x, y = int(x), int(y) robot_data.append([x, y, mapper[dir]]) # 함수들 # turn_left(robot_num, times) def turn_le.. 2022. 9. 16.
[백준_14499] 주사위굴리기 python # n, m, x, y, k 입력 n, m, x, y, k = map(int, input().split()) # grid 입력 grid = [ list(map(int, input().split())) for _ in range(n) ] # order_list 입력 order_list = list(map(int, input().split())) # 함수들 # in_range(x, y) def in_range(x, y): return 0 2022. 9. 4.
[백준_14503] 로봇청소기 python 확실히 시뮬레이션 문제를 풀 때에는, 여러 조건들을 함수화하여 체크하는 것이 좋은 것 같다. # n, m 입력 n, m = map(int, input().split()) # r, c, d입력 r, c ,d = map(int, input().split()) # room 입력 room = [ list(map(int, input().split())) for _ in range(n) ] # 함수들 # all_cleaned_or_wall(x, y): def all_cleaned_or_wall(x, y): dxs, dys = [-1, 1, 0, 0], [0, 0, 1, -1] for dx, dy in zip(dxs, dys): # 주변 위치 nx, ny = x + dx, y + dy # 청소안되어있는 빈칸이 나오면.. 2022. 8. 28.
[백준_5215] 지구온난화 python 뭔가 더 잘 풀수 있을 것 같은데,, 확실히 시뮬레이션 단원이 코드가 길게 나오는 것 같다. # r, c 입력 r, c = map(int, input().split()) # grid grid = [ [0] * c for _ in range(r) ] # grid 채워넣기 for i in range(r): a = input() for j in range(len(a)): # 육지는 if a[j] == 'X': # 1로 표시 grid[i][j] = 1 # temp temp = [ [1] * c for _ in range(r) ] # in_range(x, y) def in_range(x, y): return 0 = 3: # 침수 return True # 이하면 살아남음 return False # find_min_.. 2022. 8. 9.
[백준_1063] 킹 python 돌이 있는 경우를 or이 아닌 and로 조건처리했다가 계속 틀렸었다. 조심,, # k, s, n 입력 k, s, n = input().split() n = int(n) # mapping mapping = { 'A': 1, 'B': 2, 'C': 3, 'D': 4, 'E': 5, 'F': 6, 'G': 7, 'H': 8, } # mapping 이용하여 좌표 반환 kx = mapping[k[0]] ky = int(k[1]) sx = mapping[s[0]] sy = int(s[1]) # R L B T RT LT RB LB dx = [1, -1, 0, 0, 1, -1, 1, -1] dy = [0, 0, -1, 1, 1, 1, -1, -1] # def in_range(x, y): def in_range(x, y.. 2022. 8. 4.
[백준_8911] 거북이 python dx, dy테크닉을 이용하여 문제를 해결해 보았다. # 북 동 남 서 순으로 dx, dy 설정 dx, dy = [0, 1, 0, -1], [1, 0, -1, 0] # t 입력 t = int(input()) for _ in range(t): # 북쪽 바라보고 시작 dir_num = 0 # x, y 초기설정 x, y = 0, 0 # 최소 최댓값 설정 min_x, max_x, min_y, max_y = 0, 0, 0, 0 # order 입력 orders = input() for order in orders: # 전진 if order == 'F': x, y = x + dx[dir_num], y + dy[dir_num] # 후진 elif order == 'B': x, y = x + dx[(dir_num + 2) .. 2022. 8. 3.