데이터 코딩랩
시뮬레이션 이론 정리 본문
1️⃣ 개념정리
시뮬레이션 : 문제에 주어진 조건을 그대로 코드로 구현하는 방식
핵심 : 직접 움직임/상태 변화/조건처리를 구현해야 함
예시 : 로봇 움직이기, 지도에서 이동, 조건에 따른 상태 변화 등
2️⃣ 자주 나오는 유형
이동 , 시간 흐름, 상태변화 이벤트 처리
1) 이동 유형의 예시 문제 : 로봇청소기 , 게임 캐릭터
→ 상하좌우, 방향, 좌표 이동
2) 시간 흐름 예시 문제 : 타이머, 시계, 대기열 시뮬레이션
→ 초 단위 흐름, while 문
3) 상태 변화 예시 문제 : 배열 조작, 구슬 굴리기
→ 조건에 따라 값 변경
4) 이벤트 처리 예시 문제 : 큐/덱과 결합
→ 터뜨림, 이동, 합치기
3️⃣핵심 기술(꼭 알아야 함!)
1) 2차원 배열 : 격자판에서 상태 추적
예_ board[x][y] , visited[][]
2) 방향 벡터 : 이동을 간결하게 표현
예_ dx = [-1, 1, 0, 0] , dy = [0,0,-1,1]
3) while 반복 : 조건 만족할 때 까지 반복
예_특정 상태 될 때까지 실행
4) 조건 분기 : if/elif/else 필수
예_방향, 회전, 범위 초과
4️⃣방향 벡터 예시 (자주 쓰임)
# 상하좌우
dx = [-1, 1, 0, 0]
dy = [0, 0, -1, 1]
# 사용 예
for i in range(4):
nx = x + dx[i]
ny = y + dy[i]
5️⃣시뮬레이션의 흐름 구조
초기 상태 → 조건에 따라 처리 → 상태 갱신 → 반복 → 종료 조건 → 출력
while True:
if 조건 만족:
break
상태 확인 & 이동
결과 누적 or 변화 저장
6️⃣자주 나오는 시뮬레이션 문제 유형
로봇이동 - 백준 14503
구슬 시뮬 - 백준 13459
캐릭터 시뮬 - 백준 16234
회전 시뮬 - 백준 14891
7️⃣실전 팁
상태를 변수로 관리 - 좌표, 방향, 현재 값 등을 변수로 추적
단계를 그려보자 - 1턴, 2턴, 3턴-- 종이에 써보면서 할 것
조건 충족 순서를 주의 - if 순서 하나로 정답/ 오답 갈림
디버깅용 print 적극 활용 - 중간 상태 출력해서 추적하기
⭐ 한 줄 요약
시뮬레이션은 조건대로 하나하나 구현하고,
상태가 어떻게 변화하는지 추적하는 알고리즘!
'Algorithm > 이론' 카테고리의 다른 글
시뮬레이션 알고리즘 잘 푸는법 7가지 (0) | 2025.04.18 |
---|---|
그리디 알고리즘 개념 정리하기 (0) | 2025.04.17 |
input().strip().split() (0) | 2025.04.17 |
list.sort() 와 sorted(list) (0) | 2025.04.17 |
정렬 알고리즘 요약정리 2 sorted(), .sort(), reverse=True, key=lambda (0) | 2025.04.16 |