[백준_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.
[백준_18405] 경쟁적전염 python
와 이문제 생각보다 매우 까다로웠다. bfs내에서 종료조건을 걸어줘야, 시간초과에 걸리지 않고 문제를 해결할 수 있다. # n, k 입력 n, k = map(int, input().split()) # lab lab = [ list(map(int, input().split())) for _ in range(n) ] # s, r, c 입력 s, r, c = map(int, input().split()) # 함수들 # in_range(x, y) def in_range(x, y): return 0
2022. 9. 14.
[백준_1245] 농장관리 python
# n, m 입력 n, m = map(int, input().split()) # farm 입력 farm = [ list(map(int, input().split())) for _ in range(n) ] # 함수들 # is_mount_top(x, y) def is_mount_top(x, y): dxs, dys = [-1, -1, -1, 0, 0, 1, 1, 1], [-1, 0, 1, -1, 1, -1, 0, 1] for dx, dy in zip(dxs, dys): nx, ny = x + dx, y + dy # 주변 위치가 범위 내에 있으면서 현재 위치보다 높으면 실패 if in_range(nx, ny) and farm[x][y] < farm[nx][ny]: return False # 그런 산봉우리가 없으..
2022. 9. 11.
[백준_6593] 상범빌딩 python
3차원배열 받는법좀 까먹지말자,, while True: # l, r, c 입력 l, r, c = map(int, input().split()) # 종료조건 if l == 0 and r == 0 and c == 0: break # building building = [ [[0 for _ in range(c)] for _ in range(r)] for _ in range(l) ] # building 입력받기 for h in range(l): for i in range(r): block = input() for j in range(c): # 시작 위치 저장 if block[j] == 'S': sh, sx, sy = h, i, j # 끝 위치 저장 if block[j] == 'E': eh, ex, ey = h,..
2022. 9. 10.
[백준_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.
[백준_2583] 영역 구하기 python
dfs 문제를 풀때마다 느끼는거지만, 파이썬의 최대 리커전가능 횟수 디폴트값이 1000인건, 너무 야박한 것 같다. 꼭지점 좌표로 입력 받을 때, 역으로 이를 생각해야 하기에 조금 불편하겠다 싶었는데, 곰곰히 생각해보니 점대칭으로 그냥 받아도 아무차이없을 것 같아, 그대로 해봤더니 성공했다. # n, m, k 입력 n, m, k = map(int, input().split()) # grid grid = [ [0] * m for _ in range(n) ] # 꼭지점 좌표 입력 for _ in range(k): sy, sx, ey, ex = map(int, input().split()) # 직사각형 그려주기 for i in range(sx, ex): for j in range(sy, ey): grid[i]..
2022. 8. 30.
[백준_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.