구현

https://www.acmicpc.net/problem/12100 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2 www.acmicpc.net 1. Logic - 구현은 항상 느끼는 거지만 문제에 있는 그대로 구현만 잘 하면 된다ㅋㅋㅋㅋ근데 실수하지 않고 구현하는게 어렵다ㅜ 풀이 로직을 보자면 한번 키보드를 누를 때 마다 블럭들을 이동시키면서 합칠게 있으면 합쳐줘야한다. 5번 옮길 수 있다고 했기 때문에 재귀를 사용하여 5번 움직이는 동안 블럭들을 상하좌우 옮겨주고 5번이 됐을 때 계산해서 블럭의 Value의..
https://www.acmicpc.net/problem/15683 15683번: 감시 스타트링크의 사무실은 1×1크기의 정사각형으로 나누어져 있는 N×M 크기의 직사각형으로 나타낼 수 있다. 사무실에는 총 K개의 CCTV가 설치되어져 있는데, CCTV는 5가지 종류가 있다. 각 CCTV가 감 www.acmicpc.net 1. Logic 해당 문제의 조건을 보면 사무실의 범위가 최대 8 * 8로 아주 작은것을 알 수 있다. 그렇기 때문에 완전탐색으로 구현할 수 있다. 시간복잡도는 모든 사무실을 다 탐색할 경우 8 * 8, CCTV의 4방향을 다 탐색한다는 가정 하 최악의 경우 8 * 8 * 4 정도가 나올 것 같다. 먼저 각 cctv 타입 별 탐색할 수 있는 범위의 경우의 수는 1번 CCTV : 상, 하..
https://www.acmicpc.net/problem/14719 14719번: 빗물 첫 번째 줄에는 2차원 세계의 세로 길이 H과 2차원 세계의 가로 길이 W가 주어진다. (1 ≤ H, W ≤ 500) 두 번째 줄에는 블록이 쌓인 높이를 의미하는 0이상 H이하의 정수가 2차원 세계의 맨 왼쪽 위치 www.acmicpc.net 1. Logic - 입력을 받으면서 가장 큰 값과 해당 값의 인덱스 번호를 저장해놓는다. - 저장해 놓은 가장 큰 값의 인덱스를 기준으로 앞에서부터 인덱스까지 돌며 빗물이 찼을 때 가장 최댓값을 구하고 똑같이 뒤에서부터 인덱스 까지 돌며 최대값을 구한다. 이후 각 블록의 높이를 다 더한값을 최댓값에서 빼주면 빗물의 총량을 구할 수 있다. 14719번 문제가 어렵다면 2304 창고..
https://www.acmicpc.net/problem/3085 3085번: 사탕 게임 예제 3의 경우 4번 행의 Y와 C를 바꾸면 사탕 네 개를 먹을 수 있다. www.acmicpc.net 1. Logic 1. 인접한 두 칸에 있는 사탕을 서로 바꿔야하기 때문에 swap함수를 사용해서 값을 변경해 준다. 2. 같은 색의 사탕을 먹어야 하기 때문에 현재칸과 그 다음칸을 비교하면서 진행하며 cnt를 올려준다. 3. 최댓값을 갱신해준다. 2. Code #include using namespace std; vector vec; int n; int calc() { // 가로 int ans = -92735; for(int i = 0; i < n; i++) { int cnt = 1; for(int j = 0; j..
https://www.acmicpc.net/problem/2785 2785번: 체인 희원이는 그의 다락방에서 N개의 체인을 찾았다. 각각의 체인은 몇 개의 고리로 연결되어 있는데, 각각의 고리는 최대 두 개의 인접한 고리를 가질 수 있다. 각각의 고리는 열고 닫을 수 있다. 그 www.acmicpc.net 1. Logic - 부분 문제로 나눠서 생각을 해봤을 때 1. 원래 있는 체인을 사용해서 연결하는 경우 2. 서로 끝부분끼리 연결하는 경우 이렇게 두가지로 나누어진다고 생각했다. 원래 있는 체인을 사용하는 경우 연결하는 부분의 갯수가 체인의 길이를 넘게 되면 항상 비효율적으로 사용하기 때문에 사용하는 기존 체일을 제외한 갯수와 사용하는 체인의 갯수가 똑같아야만 한다. 서로 끝부분끼리 연결하는 경우 갯수..
https://www.acmicpc.net/problem/1748 1748번: 수 이어 쓰기 1 첫째 줄에 N(1 ≤ N ≤ 100,000,000)이 주어진다. www.acmicpc.net 1. Logic - 문제를 보자마자 %, / 연산자를 활용하여 어떻게 만들면 되겠다는 생각을 했지만 항상 마지막 자리수를 따지기 때문에 문제와 맞지 않은 사고였다. - 1의 자리부터가 아닌 앞의 자리부터 잘라야된다는 생각을 했고 주어진 n에서 자릿수를 10씩 늘려가면서 빼면 각 자릿수를 가진 숫자들이 나오게 된다. 2. Code #include using namespace std; int main() { int n; int sum = 0; cin >> n; for(int i = 1; i
보글보글소다
'구현' 태그의 글 목록 (2 Page)