데이터 코딩랩

시뮬레이션 이론 정리 본문

Algorithm/이론

시뮬레이션 이론 정리

researcher 틴틴 2025. 4. 18. 14:53

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 적극 활용 - 중간 상태 출력해서 추적하기

 

 

⭐ 한 줄 요약

시뮬레이션은 조건대로 하나하나 구현하고,
상태가 어떻게 변화하는지 추적하는 알고리즘!