본문 바로가기
728x90

시뮬레이션8

[시뮬레이션] 핀볼게임 문제링크 https://www.codetree.ai/missions/2/problems/pinball-game?&utm_source=clipboard&utm_medium=text 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석 국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요. www.codetree.ai 1. 핵심 / 과 \ 부딪혔을 때 방향전환 다루기 회전을 할 때는 동(0) 남(1) 서(2) 북(3)을 기본으로 한다. 1번(/): 0 ↔ 3, 1 ↔ 2 2번(\): 2 ↔ 3, 0 ↔ 1 def change_dir(r, c, d): if board[r][c] == 1: d = 3 - d elif board[r][c] == 2.. 2024. 2. 10.
[시뮬레이션] 금 채굴하기 문제링크 https://www.codetree.ai/missions/2/problems/gold-mining?&utm_source=clipboard&utm_medium=text 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석 국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요. www.codetree.ai 1. 핵심 L1 거리는 구하는 방법 방법1. 같은 거리에 존재하는 마름모 껍질에 존재하는 좌표들 구하기 # 좌표(0, 0) 기준 거리가 k인 점들의 집합 def taxi_circle(k): if k == 0: return [(0, 0)] # 거리가 k라는 것은 x좌표 + y좌표 = k 가 됨을 의미한다. points = [] # .. 2024. 2. 10.
[코드트리 챌린지] 3주차 - 2차원 바람 · 문제링크 https://www.codetree.ai/cote/13/problems/The-2D-wind-blows?&utm_source=clipboard&utm_medium=text 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석 국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요. www.codetree.ai · 핵심 : 2차원 돌리기 1. 대상이 되는 2차원 좌표들의 집합 모으기 # 2차원 회전 - 좌표집합 밀기로 접근 def get_grids(r1, c1, r2, c2): qs = deque([]) for col in range(c1, c2 + 1): qs.append((r1, col)) for row in range(r1.. 2023. 9. 29.
[백준/BOJ] 1347번 - 미로 만들기 (Python, Java) · 문제링크 https://www.acmicpc.net/problem/1347 1347번: 미로 만들기 홍준이는 미로 안의 한 칸에 남쪽을 보며 서있다. 미로는 직사각형 격자모양이고, 각 칸은 이동할 수 있거나, 벽을 포함하고 있다. 모든 행과 열에는 적어도 하나의 이동할 수 있는 칸이 있다. 홍 www.acmicpc.net · 핵심 1. 시작점이 설정되어있지 않다. → 명령어의 최대 길이는 50이므로 넉넉하게 아주 큰 board를 생성하고 적절한 시작점을 임의로 설정한다. → max_n = 200, cr = max_n // 2 , cc = max_n // 2 2. 큰 board에서 이동한 영역을 추출하기 → 도착을 1로 표시 → 사각형을 추출하기 위해서 1이 존재하는 (행, 열)들 중에서 min_r, .. 2023. 9. 25.
[코드트리 챌린지] 3주차 - 1차원 바람 · 문제링크 https://www.codetree.ai/cote/13/problems/The-1D-wind-blows?&utm_source=clipboard&utm_medium=text 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석 국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요. www.codetree.ai · 핵심 1. 오른쪽 바람, 왼쪽 바람 : 격자 안에 밀고 당기기 유형 → 1) 직접 구현 # 오른쪽 바람 def right_wind(r: int): row = board[r] temp = row[0] for i in range(m - 1): row[i] = row[i + 1] row[-1] = temp return ro.. 2023. 9. 23.
[코드트리 챌린지] 3주차 - Simulation (3) ★ 핵심 : 격자 안에서 밀고 당기기 1. temp로 경계값 일시저장 후 오른쪽 또는 왼쪽 밀기 arr = [1, 2, 3, 4, 5] n = 5 # 오른쪽으로 밀기(왼쪽에서 밀기) # Step 1 - 오른쪽 경계값 저장 temp = arr[-1] # Step 2 - 오른쪽 밀기 for i in range(n - 1, 0, -1): arr[i] = arr[i - 1] # Step 3 arr[0] = temp # [5, 1, 2, 3, 4] # 왼쪽으로 밀기(오른쪽에서 밀기) # Step 1 - 왼쪽 경계값 저장 temp = arr[0] # Step 2 - 왼쪽으로 밀기 for i in range(n - 1): arr[i] = arr[i + 1] # Step 3 arr[-1] = temp # [2, 3, .. 2023. 9. 23.
728x90
반응형