목록SWEA (108)
N
https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=3&contestProbId=AWu1JmN6Js4DFASy&categoryId=AWu1JmN6Js4DFASy&categoryType=CODE&problemTitle=&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=3&pageSize=10&pageIndex=6 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 주어진 배열을 이진 트리의 중위 순회 방식으로 출력. K = depth를 뜻하므로, 배열의 원소를 방문하면서 count를 ..
https://swexpertacademy.com/main/solvingProblem/solvingProblem.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com BFS로 문제 풀이. 핵심은 상하좌우로 이동하면서 이동하려는 좌표의 cost가 이전 cost보다 비싼 경우 가지 치기를 하여 시간을 줄이도록 하면 된다. #include #include #include #include using namespace std; int main(void) { int T; int directX[4] = {-1, 1, 0, 0}; int directY[4] = {0, 0, -1, 1}; cin >> T; for (int t ..
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 탐색을 진행..
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번 돌려주도록 한다. 각 원판..
www.acmicpc.net/problem/17837 17837번: 새로운 게임 2 재현이는 주변을 살펴보던 중 체스판과 말을 이용해서 새로운 게임을 만들기로 했다. 새로운 게임은 크기가 N×N인 체스판에서 진행되고, 사용하는 말의 개수는 K개이다. 말은 원판모양이고, 하 www.acmicpc.net 구현 및 시뮬레이션 문제. 주요 변수 및 함수 설명/ board : 0, 1, 2 가 담겨있는 보드 play : 말이 움직이는 공간. string 형태로 말의 순서를 바꾸기 쉽게 한다. player : 1부터 K까지 말의 좌표(x, y)와 방향(d)이 인덱스로는 0 ~ K - 1 로 담겨있다. directReverse() : 벽을 넘어가거나 파란 블럭을 만났을 때 말의 방향을 바꾼다. move() : pla..
www.acmicpc.net/problem/17142 17142번: 연구소 3 인체에 치명적인 바이러스를 연구하던 연구소에 승원이가 침입했고, 바이러스를 유출하려고 한다. 바이러스는 활성 상태와 비활성 상태가 있다. 가장 처음에 모든 바이러스는 비활성 상태이고 www.acmicpc.net 완전탐색과 BFS를 활용. 변수 설명) N = 맵의 크기 M = 활성 상태로 바꿀 수 있는 바이러스의 수 answer = 답 totalVirus = 바이러스를 놓을 수 있는 수(2의 개수) directX, directY = 상하좌우로 움직이기 위해 사용하는 배열 check = 모든 칸에 바이러스를 놓을 수 있는지 확인하기 위한 bool 변수 space = 0의 개수(빈 칸의 개수) board = 연구소 맵 벡터 viru..
문제 낚시왕이 상어 낚시를 하는 곳은 크기가 R×C인 격자판으로 나타낼 수 있다. 격자판의 각 칸은 (r, c)로 나타낼 수 있다. r은 행, c는 열이고, (R, C)는 아래 그림에서 가장 오른쪽 아래에 있는 칸이다. 칸에는 상어가 최대 한 마리 들어있을 수 있다. 상어는 크기와 속도를 가지고 있다. 낚시왕은 처음에 1번 열의 한 칸 왼쪽에 있다. 다음은 1초 동안 일어나는 일이며, 아래 적힌 순서대로 일어난다. 낚시왕은 가장 오른쪽 열의 오른쪽 칸에 이동하면 이동을 멈춘다. 낚시왕이 오른쪽으로 한 칸 이동한다. 낚시왕이 있는 열에 있는 상어 중에서 땅과 제일 가까운 상어를 잡는다. 상어를 잡으면 격자판에서 잡은 상어가 사라진다. 상어가 이동한다. 상어는 입력으로 주어진 속도로 이동하고, 속도의 단위는..
문제 크기가 3×3인 배열 A가 있다. 1초가 지날때마다 배열에 연산이 적용된다. R 연산: 배열 A의 모든 행에 대해서 정렬을 수행한다. 행의 개수 ≥ 열의 개수인 경우에 적용된다. C 연산: 배열 A의 모든 열에 대해서 정렬을 수행한다. 행의 개수 > r >> c >> k; for(int i = 0; i > matrix[i][j]; } } while(count++ 0){ m[matrix[i][j]]++; } } for(auto itr = m.begin(); itr != m.end(); itr++){ tmpArr.push_back({itr->first, itr->second}); } sort(tmpArr.begin(), tm..