목록삼성 (15)
N
https://www.acmicpc.net/problem/23289 23289번: 온풍기 안녕! 유난히 추운 날씨가 예상되는 이번 겨울을 대비하기 위해 구사과는 온풍기를 설치하려고 한다. 온풍기의 성능을 테스트하기 위해 구사과는 집을 크기가 R×C인 격자판으로 나타냈고, 1×1 크기 www.acmicpc.net 문제 설명이 길어 상당히 까다로웠다. 그러나 순서에 맞춰 차례대로 하나씩 하면 풀기 쉬울 것 같다. ===전역 변수=== 우선 전역 변수부터 설정한다. R, C, K는 각각 행, 열, 일정 온도를 뜻한다. chocolate은 출력할 값이다. dx, dy 배열은 온풍기의 바람 방향을 뜻하며, 상하좌우의 순서다. windX, windY 배열은 바람이 이동하는 방향을 나타냈으며, 바람의 상하좌우 방향에..
https://www.acmicpc.net/problem/23288 23288번: 주사위 굴리기 2 크기가 N×M인 지도가 존재한다. 지도의 오른쪽은 동쪽, 위쪽은 북쪽이다. 지도의 좌표는 (r, c)로 나타내며, r는 북쪽으로부터 떨어진 칸의 개수, c는 서쪽으로부터 떨어진 칸의 개수이다. 가장 왼 www.acmicpc.net 클래스로 주사위를 굴리는 전체 상황을 만들었다. 우선 전역변수로는 세로, 가로의 크기인 N, M. 상하좌우 이동할 방향을 나타내는 배열 dx, dy. 최대 20 x 20의 크기를 가지는 board를 선언했다. Dice 클래스. 현재 좌표를 나타내는 x, y. 주사위의 상태를 나타내는 dice로, 처음에는 {1, 3, 4, 5, 2, 6}으로 초기화했다. 이동할 방향을 나타내는 d..
https://www.acmicpc.net/problem/12100 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2 www.acmicpc.net DFS를 이용한 완전 탐색. 우선 N x N 크기의 보드를 만든 후 숫자를 저장한다. 이후 for문을 이용하여 상,하,좌,우로 움직이는데, 이를 dfs 함수로 한다. dfs 함수는 (방향, 보드, 움직인 횟수)를 매개변수로 넘겨준다. dfs() 우선 dfs 종료 조건을 정의한다. count == 5면 board를 순회하여 answer보다 큰 숫자를 갱신한 후 retur..
https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=4&contestProbId=AV7I5fgqEogDFAXB&categoryId=AV7I5fgqEogDFAXB&categoryType=CODE&problemTitle=&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=4&pageSize=10&pageIndex=1 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com set과 BFS를 통한 완전 탐색. 우선 4 x 4 크기의 보드를 입력 받는다. 이후 이 보드를 돌면서 BFS 탐색을 진행..
문제 마법사 상어는 파이어볼, 토네이도, 파이어스톰, 물복사버그 마법을 할 수 있다. 오늘 새로 배운 마법은 비바라기이다. 비바라기를 시전하면 하늘에 비구름을 만들 수 있다. 오늘은 비바라기를 크기가 N×N인 격자에서 연습하려고 한다. 격자의 각 칸에는 바구니가 하나 있고, 바구니는 칸 전체를 차지한다. 바구니에 저장할 수 있는 물의 양에는 제한이 없다. (r, c)는 격자의 r행 c열에 있는 바구니를 의미하고, A[r][c]는 (r, c)에 있는 바구니에 저장되어 있는 물의 양을 의미한다. 격자의 가장 왼쪽 윗 칸은 (1, 1)이고, 가장 오른쪽 아랫 칸은 (N, N)이다. 마법사 상어는 연습을 위해 1번 행과 N번 행을 연결했고, 1번 열과 N번 열도 연결했다. 즉, N번 행의 아래에는 1번 행이, ..
www.acmicpc.net/problem/17822 17822번: 원판 돌리기 반지름이 1, 2, ..., N인 원판이 크기가 작아지는 순으로 바닥에 놓여있고, 원판의 중심은 모두 같다. 원판의 반지름이 i이면, 그 원판을 i번째 원판이라고 한다. 각각의 원판에는 M개의 정수가 적혀 www.acmicpc.net 원판은 덱, 수의 위치(i, j)는 큐로 관리하였다. 우선 N개의 덱을 저장하는 벡터 disk. M개의 수를 임시 덱에 저장하고 disk에 넣어주도록 한다. 이때, remain 변수를 늘려주었다. (remain 변수는 원판에서 0이 아닌 수, 제거되지 않은 수다) T번 반복하자. x, d, k를 순서대로 받아온다. 그리고 x의 배수에 해당하는 원판을 d의 방향으로 k번 돌려주도록 한다. 각 원판..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/diYP5s/btq2HPKbUco/XW5mLVIluHKmeskMh0rLsK/img.png)
문제 낚시왕이 상어 낚시를 하는 곳은 크기가 R×C인 격자판으로 나타낼 수 있다. 격자판의 각 칸은 (r, c)로 나타낼 수 있다. r은 행, c는 열이고, (R, C)는 아래 그림에서 가장 오른쪽 아래에 있는 칸이다. 칸에는 상어가 최대 한 마리 들어있을 수 있다. 상어는 크기와 속도를 가지고 있다. 낚시왕은 처음에 1번 열의 한 칸 왼쪽에 있다. 다음은 1초 동안 일어나는 일이며, 아래 적힌 순서대로 일어난다. 낚시왕은 가장 오른쪽 열의 오른쪽 칸에 이동하면 이동을 멈춘다. 낚시왕이 오른쪽으로 한 칸 이동한다. 낚시왕이 있는 열에 있는 상어 중에서 땅과 제일 가까운 상어를 잡는다. 상어를 잡으면 격자판에서 잡은 상어가 사라진다. 상어가 이동한다. 상어는 입력으로 주어진 속도로 이동하고, 속도의 단위는..
www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net 이 문제의 핵심 변수는 치킨집의 좌표를 저장하는 벡터 chicken, 집의 좌표를 저장하는 벡터 house, 조합을 구하기 위한 벡터 ind 다. 처음 board벡터에 집과 치킨집의 정보를 받아온다. 만약 board[i][j] == 1이면 house 벡터에, board[i][j] == 2 이면 chicken 벡터에 좌표를 저장한다. 이후 ind 벡터를 선언하여 M개의 1과 chicken.s..