문제 풀이/백준 알고리즘

    [baekjoon 22867] 종점 (스위핑, 문자열, 정렬) (C++)

    https://www.acmicpc.net/problem/22867 22867번: 종점 주행을 마친 버스들이 종점에 들어온다. 종점에 들어온 버스는 버스를 정비하기 위한 자리에 들어간다. 즉, 종점에 버스 4대가 있다면 버스를 정비할 수 있는 공간이 최소 4개 이상 필요하다. www.acmicpc.net 버스들이 정류장에 들어오고, 나가는데 정류장에 최대 몇 대가 머무르다 가는지 출력하는 문제이다. 나는 처음에 시간을 모두 파싱 해서, 모두 ms로 단위를 바꿔준 다음에 누적합 풀듯이 풀었다. 시각 * 3600 * 1000 + 분 * 60 * 1000 + 초 * 1000 + 밀리초 그래서 총배열의 크기가 86400000이지만 메모리 제한이 1024mb라 통과했다. 하지만 더 간단한 방법이 있다. 어차피 시..

    [baekjoon 22860] 폴더 정리(small) (DFS, BFS, 구현, HashMap) (C++)

    [baekjoon 22860] 폴더 정리(small) (DFS, BFS, 구현, HashMap) (C++)

    https://www.acmicpc.net/problem/22860 22860번: 폴더 정리 (small) main 폴더 하위에는 FolderA 폴더 하위에 있는 File1, File2, FolderB 폴더 하위에 있는 File1, File3이 있다. 파일의 종류는 File1, File2, File3 총 3가지이고, 파일의 총 개수는 File1, File2, File1, File3 총 4개이다. mai www.acmicpc.net 이름이 main 폴더 안에 여러 가지 파일과 폴더가 존재한다. 위 구조는 main 폴더의 하위 구조를 계층적으로 표시한 것이다. FolderA, FolderB, FolderC는 폴더이고 File1, File2, File3은 파일이다. 파일 이름이 같은 경우는 동일한 파일이다. ..

    [baekjoon 14503] 로봇 청소기 (구현, 시뮬레이션) (C++)

    https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net 로봇 청소기가 청소할 수 있는 영역의 개수를 구해야 한다. 일반 4방향 탐색이 아닌, 기본적으론 반시계 방향 탐색을 하며 여러 가지 규칙이 있다. 현재 위치를 청소한다. 현재 위치에서 현재 방향을 기준으로 왼쪽 방향부터 차례대로 인접한 칸을 탐색한다. 왼쪽 방향에 아직 청소하지 않은 공간이 존재한다면, 그 방향으로 회전한 다음 한 칸을 전진하고 1번부터 진행한다. 왼쪽 방향에 청소할 공간이 없다..

    [baekjoon 14719] 빗물 (구현, 스택) (C++)

    [baekjoon 14719] 빗물 (구현, 스택) (C++)

    https://www.acmicpc.net/problem/14719 14719번: 빗물 첫 번째 줄에는 2차원 세계의 세로 길이 H과 2차원 세계의 가로 길이 W가 주어진다. (1 ≤ H, W ≤ 500) 두 번째 줄에는 블록이 쌓인 높이를 의미하는 0이상 H이하의 정수가 2차원 세계의 맨 왼쪽 위치 www.acmicpc.net 2차원 세계에 블록이 쌓여있다. 비가 오면 블록 사이에 빗물이 고인다. 이런 식으로 빗물이 고인다. 아이디어를 찾는다면 나름 쉽게 풀 수 있다. 1. 시뮬레이션, 구현 5 4 3 5 6 8 7 1 이 있다고 치면 빗물은 좌, 우에 쌓일 것이다. 그러므로 4부터 계산을 해주는데 4는 5와 8 사이에 있고 틈에 총 1만큼 쌓일 것이다. 3은 5와 8 사이에 있고 틈에 총 2만큼 쌓일..

    [baekjoon 19951] 태상이의 훈련소 생활 (누적합) (C++)

    [baekjoon 19951] 태상이의 훈련소 생활 (누적합) (C++)

    https://www.acmicpc.net/problem/19951 19951번: 태상이의 훈련소 생활 2020년 5월 14일 논산훈련소에 입대한 태상이는 첫 총기 훈련에서 가스 조절기를 잃어버리는 중대한 실수를 범했다. 그로 인해, 태상이는 조교들에게 눈총을 받게 되었다. 조교들은 태상이에게 연 www.acmicpc.net 초기 연병장의 상태: 1 2 3 4 5 -1 -2 -3 -4 -5 첫 번째 지시 (1 5 -3)를 수행 한 뒤: -2 -1 0 1 2 -1 -2 -3 -4 -5 두 번째 지시 (6 10 5)를 수행한 뒤: -2 -1 0 1 2 4 3 2 1 0 세 번째 지시 (2 7 2)를 수행한 뒤: -2 1 2 3 4 6 5 2 1 0 초기 상태를 주고, x부터 y까지 덧셈할 값을 주고 최종 상..

    [baekjoon 3190] 뱀 (덱, 시뮬레이션) (C++)

    https://www.acmicpc.net/problem/3190 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net 어렸을 때 해봤던 뱀 게임 문제이다. 뱀은 매 초마다 1. 머리를 방향에 따라 이동한다 2. 머리에 사과가 있다면 뱀의 길이는 하나 늘어난다. 즉, 꼬리 부분이 그대로 있다. 3. 사과가 없다면 한 칸 전진한 것이므로 꼬리 부분 역시 한 칸 이동한다. 명령어는 L(왼쪽)과 D(오른쪽)으로 구성되어 있으며, 게임 시작 시간으로부터 X초가 끝난 뒤에 실행된다. 따라서 1초마다 뱀의 머리를 방향에 맞춰 이동해..