요약 정리

알고리즘 문제 해결 흐름 정리

[1] 구슬탈출2

카테고리: BFS, 시뮬레이션, 상태 관리 핵심:

  • 빨간 구슬과 파란 구슬 동시 이동

  • 4방향 탐색, 이동 거리 비교로 겹침 처리

  • 방문 상태: visited[rr][rc][br][bc] 4차원

  • 최대 10번 제한

시스템 흐름도:

text

main()
├── 입력: board[N][M], R/B 초기위치
├── bfs(시작위치)
│   ├── Queue<State> 초기화
│   ├── while (!q.isEmpty())
│   │   ├── if (depth >= 10) continue
│   │   ├── for (4방향)
│   │   │   ├── move()로 R, B 이동
│   │   │   ├── B가 구멍 → continue
│   │   │   ├── R,B 겹침 → 이동거리로 조정
│   │   │   ├── R만 구멍 → return depth+1
│   │   │   └── 방문체크 후 큐 추가
│   └── return -1
└── 결과 출력

[2] 2048(Easy)

카테고리: DFS, 시뮬레이션, 백트래킹 핵심:

  • 5번 이동 가능한 모든 경우 탐색 (4^5)

  • 보드 상태 복사 후 이동 시뮬레이션

  • 이동 방향별 처리 순서 다름

  • 합쳐진 블록은 visited로 중복 합침 방지

시스템 흐름도:

text

[3] 뱀

카테고리: 시뮬레이션, 덱, 자료구조 핵심:

  • Deque<int[]>: 뱀 몸통 좌표 (머리 추가, 꼬리 제거)

  • Map<Integer, Character>: 시간별 방향 전환

  • 동작: 매초 이동 → 사과 확인 → 충돌 체크

시스템 흐름도:

text

[4] 시험감독

카테고리: 수학, 구현 핵심:

  • 각 시험장에 총감독관 1명 필수

  • 남은 인원에 대해 부감독관 수 계산

  • long 타입 사용 (범위 초과 가능)

시스템 흐름도:

text

[5] 주사위 굴리기

카테고리: 시뮬레이션, 구현 핵심:

  • 주사위 6면 값 배열 dice[7]

  • 방향별 회전시 주사위 면 매핑

  • 지도와 주사위 바닥면 값 교환

시스템 흐름도:

text

[6] 테트로미노

카테고리: DFS, 브루트포스 핵심:

  • 4칸 DFS로 ㅡ, ㅁ, ㄱ, ㄴ 모양 처리

  • ㅗ, ㅓ, ㅏ, ㅜ 모양 별도 함수 처리

  • 가지치기 + 상/하 대칭 탐색 제한

시스템 흐름도:

text

[7] 퇴사

카테고리: DP, 다이나믹 프로그래밍 핵심:

  • 뒤에서부터 계산하는 DP

  • 점화식: dp[i] = max(dp[i+1], money[i] + dp[endDay+1])

  • 선택/미선택 경우의 수

시스템 흐름도:

text

[8] 연구소

카테고리: DFS, 조합, BFS 핵심:

  • 벽 3개 조합으로 세우기 (완전탐색)

  • BFS로 바이러스 전파

  • 안전 영역 계산

시스템 흐름도:

text

[9] 로봇 청소기

카테고리: 시뮬레이션, 구현 핵심:

  • 현재 칸 청소 후 4방향 탐색 (반시계 90도 회전)

  • 후진 가능성 확인

  • 청소 여부 체크 순서 중요

시스템 흐름도:

text

[10] 연산자 끼워넣기

카테고리: DFS, 순열 핵심:

  • 연산자 개수 제한 있으므로 순열 생성

  • 음수 나눗셈 처리 주의

  • 연산자 배열 인덱스 리스트로 조합 생성

시스템 흐름도:

text

[11] 스타트와 링크

카테고리: 조합, DFS, 백트래킹 핵심:

  • N/2명씩 팀 나누기

  • 팀 능력치 계산시 중복 제거 (i<j 조건)

  • 대칭성 활용

시스템 흐름도:

text

[12] 경사로

카테고리: 구현, 시뮬레이션 핵심:

  • 높이 차 1 초과 불가

  • 경사로 길이 L 만큼 연속 필요

  • 경사로 겹침 불가

  • 행별/열별 독립 검사

시스템 흐름도:

text

[13] 톱니바퀴

카테고리: 시뮬레이션, 구현 핵심:

  • 회전 전 맞닿은 극 확인

  • rot[4] 배열로 각 톱니 회전 방향 저장

  • 연쇄 전파 방향 결정 후 한번에 회전 적용

시스템 흐름도:

text

[14] 감시

카테고리: DFS, 조합, 시뮬레이션 핵심:

  • CCTV 종류별 방향 경우의 수 미리 정의

  • 각 CCTV 방향 선택 조합 탐색

  • 감시 영역 전파

  • cctvDir[종류][방향][4방향] 3차원 배열

시스템 흐름도:

text

[15] 사다리 조작

카테고리: DFS, 백트래킹, 브루트포스 핵심:

  • 추가 가로선 0~3개

  • 조합 탐색시 start 인덱스 사용 (중복 제거)

  • 가지치기: 이미 찾은 답보다 크면 중단

시스템 흐름도:

text

[16] 드래곤 커브

카테고리: 시뮬레이션, 세트 핵심:

  • K세대 = (K-1세대) + (K-1세대 90도 회전 뒤집기)

  • 방향 리스트 회전/확장

  • Set<Pair>로 좌표 관리

시스템 흐름도:

text

[17] 치킨 배달

카테고리: 조합, 완전탐색 핵심:

  • M개 치킨집 선택

  • 조합 탐색시 start 인덱스 필수 (시간 초과 방지)

  • 집-치킨집 거리 미리 계산 가능

시스템 흐름도:

text

[18] 큐빙

카테고리: 시뮬레이션, 구현 핵심:

  • 54칸 1차원 배열로 큐브 표현

  • side[face][12]로 인접면 매핑

  • 회전시 temp 배열로 동시 치환

시스템 흐름도:

text

[19] 인구 이동

카테고리: BFS, 시뮬레이션, 그래프 핵심:

  • Union 클래스로 연합 정보 관리

  • BFS로 인구 차이 L~R 범위 내 연합 형성

  • 연합별 인구 재분배

시스템 흐름도:

text

[20] 나무 재테크

카테고리: 시뮬레이션, 자료구조 핵심:

  • List<Tree>[][] treeMap으로 나무 위치 관리

  • 나이순 정렬 (어린 나무부터 양분 흡수)

  • 계절별 처리 (봄/여름/가을/겨울)

시스템 흐름도:

text

[21] 아기 상어

카테고리: BFS, 시뮬레이션 핵심:

  • 상어 크기별 먹을 수 있는 물고기 제한

  • BFS로 가장 가까운 물고기 탐색 (거리, 행, 열 순)

  • 크기 증가시 eaten 리셋

시스템 흐름도:

text

[22] 미세먼지 안녕

카테고리: 시뮬레이션, 구현 핵심:

  • 미세먼지 확산 (동시에 발생하므로 복사본 필요)

  • 공기청정기 순환 (반시계/시계 방향)

  • 배열 회전으로 공기 순환 구현

시스템 흐름도:

text

[23] 낚시왕

카테고리: 시뮬레이션, 구현 핵심:

  • 상어 클래스로 속성 관리

  • 속력 최적화: speed %= (R-1)*2 또는 (C-1)*2

  • 같은 칸 상어 충돌시 큰 상어만 생존

시스템 흐름도:

text

[24] 이차원 배열과 연산

카테고리: 시뮬레이션, 정렬 핵심:

  • R연산: 행 ≥ 열일 때 행 정렬

  • C연산: 행 < 열일 때 열 정렬

  • Node 클래스로 (수, 등장횟수) 관리

  • 100개 초과시 자르기

시스템 흐름도:

text

[25] 연구소 3

카테고리: BFS, 조합, 시뮬레이션 핵심:

  • M개 바이러스 활성화 조합

  • BFS로 동시 전파

  • 비활성 → 활성 바이러스 전환 가능

시스템 흐름도:

text

[26] 게리맨더링 2

카테고리: 브루트포스, 구현 핵심:

  • (x,y,d1,d2) 모든 조합 탐색

  • 경계선 긋고 1~5번 선거구 할당

  • 선거구별 인구 합 계산

시스템 흐름도:

text

[27] 새로운 게임 2

카테고리: 시뮬레이션, 구현 핵심:

  • List<Integer>[][] pieces로 말 위치 관리

  • Map<Integer, Piece>로 말 정보 관리

  • 말 이동시 위에 있는 말들 함께 이동

시스템 흐름도:

text

[28] 원판돌리기

카테고리: 시뮬레이션, BFS 핵심:

  • 원판 배열 회전 (CW, CCW)

  • 인접한 같은 숫자 제거 (BFS)

  • 제거없을시 평균 계산 후 조정

시스템 흐름도:

text

[29] 주사위 윷놀이

카테고리: DFS, 백트래킹, 그래프 핵심:

  • Node 클래스로 보드 경로 연결

  • 이동 경로 하드코딩

  • DFS로 말 4개 이동 조합 탐색

시스템 흐름도:

text

[30] 모노미노도미노 2

카테고리: 시뮬레이션, 구현 핵심:

  • 초록보드(6x4), 파랑보드(6x4) 분리 관리

  • 블록 타입별 이동 로직

  • 줄 가득찼을시 삭제 및 이동

시스템 흐름도:

text

[31] 청소년 상어

카테고리: DFS, 백트래킹, 시뮬레이션 핵심:

  • Fish 클래스로 물고기 상태 관리

  • 물고기 이동 (8방향, 회전)

  • 상어 이동 가능한 모든 경로 탐색

시스템 흐름도:

text

[32] 어른 상어

카테고리: 시뮬레이션, 구현 핵심:

  • 상어 클래스로 상태 관리

  • 냄새 시간 관리

  • 상어 이동 우선순위 테이블

시스템 흐름도:

text

[33] 스타트 택시

카테고리: BFS, 시뮬레이션 핵심:

  • BFS로 최단거리 승객 찾기

  • 연료 관리 및 충전

  • 벽에 둘러쌓인 경우 처리

시스템 흐름도:

text

[34] 컨베이어 벨트 위의 로봇

카테고리: 시뮬레이션, 구현 핵심:

  • 벨트 회전 (로봇 포함)

  • 로봇 이동 (앞칸 비었고 내구도 1 이상)

  • 로봇 올리기 (내구도 1 이상)

시스템 흐름도:

text

[35] 마법사 상어와 파이어볼

카테고리: 시뮬레이션, 구현 핵심:

  • FireBall 클래스로 속성 관리

  • 이동 계산 최적화: (r + dr[dir]*speed) % N

  • 2개 이상 합쳐지면 4개로 분할

시스템 흐름도:

text

[36] 마법사 상어와 토네이도

카테고리: 시뮬레이션, 구현 핵심:

  • 나선형 이동 패턴

  • 모래 비율별 분산 계산

  • 경계 밖으로 나간 모래 합산

시스템 흐름도:

text

[37] 마법사 상어와 파이어스톰

카테고리: 시뮬레이션, BFS 핵심:

  • 부분 격자 90도 회전

  • 얼음 녹이기 (인접 3칸 미만)

  • BFS로 가장 큰 얼음 덩어리 찾기

시스템 흐름도:

text

[38] 마법사 상어와 비바라기

카테고리: 시뮬레이션, 구현 핵심:

  • 구름 boolean 배열로 관리

  • 구름 이동 및 비 내리기

  • 물복사버그 (대각선 4방향)

시스템 흐름도:

text

[39] 마법사 상어와 블리자드

카테고리: 시뮬레이션, 구현 핵심:

  • 나선형 배열 ↔ 리스트 변환

  • 구슬 폭발 (4개 이상 연속)

  • 구슬 변화 (개수, 번호)

시스템 흐름도:

text

[40] 마법사 상어와 복제

카테고리: 시뮬레이션, DFS, BFS 핵심:

  • Fish 클래스로 물고기 상태

  • 물고기 이동 (45도 반시계 회전)

  • 상어 이동 DFS (사전순 우선)

시스템 흐름도:

text

[41] 상어 초등학교

카테고리: 시뮬레이션, 구현 핵심:

  • Student 클래스로 좋아하는 학생 관리

  • 자리 선정 기준 (좋아하는 학생 수 → 빈칸 수 → 행 → 열)

  • 만족도 계산

시스템 흐름도:

text

[42] 상어 중학교

카테고리: BFS, 시뮬레이션 핵심:

  • Group 클래스로 블록 그룹 관리

  • BFS로 블록 그룹 형성 (일반블록≥1, 무지개제한없음)

  • 중력 적용 및 회전

시스템 흐름도:

text

[43] 주사위 굴리기 2

카테고리: BFS, 시뮬레이션 핵심:

  • 주사위 6면 값 배열

  • BFS로 동일 숫자 칸 수 계산

  • 이동 방향 변경 (A vs B 비교)

시스템 흐름도:

text

[44] 온풍기 안녕!

카테고리: 시뮬레이션, BFS, 구현 핵심:

  • 히터 바람 BFS 전파

  • 온도 조절 (인접칸 차이/4)

  • 벽 존재시 이동 제한

시스템 흐름도:

text

[45] 어항정리

카테고리: 시뮬레이션, 구현 핵심:

  • 2D 배열 회전 및 접기

  • 물고기 수 조절 (차이/5)

  • 최대/최소 차이 K 이하까지 반복

시스템 흐름도:

text

Last updated