BOJ

코테

[Python] 백준 2573번 빙산 (풀이)

문제 링크 : https://www.acmicpc.net/problem/2573 2573번: 빙산 첫 줄에는 이차원 배열의 행의 개수와 열의 개수를 나타내는 두 정수 N과 M이 한 개의 빈칸을 사이에 두고 주어진다. N과 M은 3 이상 300 이하이다. 그 다음 N개의 줄에는 각 줄마다 배열의 각 행을 www.acmicpc.net 풀이 1. 시간복잡도 관련 n과m이 작고, 빙산의 높이(l) 또한 10이 최대이기 때문에 n*m*l 1억 이기 때문에 체킹에서 nlogn의 시간복잡도가 되어야겠다고 생각했다. 따라서, 녹이는건 이중for문으로 녹이고, 빙..

코테

[C/C++] 백준 12100번 2048(Easy)

[문제 출처] https://www.acmicpc.net/problem/12100 문제 2048 게임은 4×4 크기의 보드에서 혼자 즐기는 재미있는 게임이다. 이 링크를 누르면 게임을 해볼 수 있다. 이 게임에서 한 번의 이동은 보드 위에 있는 전체 블록을 상하좌우 네 방향 중 하나로 이동시키는 것이다. 이때, 같은 값을 갖는 두 블록이 충돌하면 두 블록은 하나로 합쳐지게 된다. 한 번의 이동에서 이미 합쳐진 블록은 또 다른 블록과 다시 합쳐질 수 없다. (실제 게임에서는 이동을 한 번 할 때마다 블록이 추가되지만, 이 문제에서 블록이 추가되는 경우는 없다) 의 경우에서 위로 블록을 이동시키면 의 상태가 된다. 여기서, 왼쪽으로 블록을 이동시키면 의 상태가 된다. 의 상태에서 블록을 오른쪽으로 이동시키면..

카테고리 없음

[C/C++] 백준 1890번 : 점프

문제 N×N 게임판에 수가 적혀져 있다. 이 게임의 목표는 가장 왼쪽 위 칸에서 가장 오른쪽 아래 칸으로 규칙에 맞게 점프를 해서 가는 것이다. 각 칸에 적혀있는 수는 현재 칸에서 갈 수 있는 거리를 의미한다. 반드시 오른쪽이나 아래쪽으로만 이동해야 한다. 0은 더 이상 진행을 막는 종착점이며, 항상 현재 칸에 적혀있는 수만큼 오른쪽이나 아래로 가야 한다. 한 번 점프를 할 때, 방향을 바꾸면 안 된다. 즉, 한 칸에서 오른쪽으로 점프를 하거나, 아래로 점프를 하는 두 경우만 존재한다. 가장 왼쪽 위 칸에서 가장 오른쪽 아래 칸으로 규칙에 맞게 이동할 수 있는 경로의 개수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 게임 판의 크기 N (4 ≤ N ≤ 100)이 주어진다. 그 다음 N개 줄에는 각 칸..

카테고리 없음

[C/C++] 백준 2294번 : 동전 2

1원부터 k원까지 dp를 통해 최소개수를 구해나가는 문제. 문제풀이 만약 t원의 동전이 있다면 dp[t] = 1 t원의 동전이 없다면 dp[t] = dp[t-r] + dp[r] (0 > n >> k; for (int i = 0; i > temp; dp[temp] = 1; } for (int i = 1; i

카테고리 없음

[C/C++] 백준 9663번 N-Queen 풀이

백트래킹 문제. 백트래킹은 브루트포스의 응용유형이라고 생각한다. 브루트포스와 유사하게 풀되, 가지치기만 해주면 백트래킹문제가 된다고 생각한다. ​ 가지치기란, 안될것같은 경우의 수는 미리 쳐내서 시간적이득을 볼 수 있는 스킬이라고 보면 된다. 백트래킹문제에서 가지치기를 하지 않게 되면 대부분 시간초과가 뜬다. 그래서 백트래킹문제는 시간초과와의 싸움이다.. ​ //BOJ 9663 #include #include #include #include #include #define ll long long using namespace std; ll n; ll cnt = 0; ll chess[15]; bool check(ll row) { for (ll i = 0; i < row; i++) { if (chess[i] =..

caseBread
'BOJ' 태그의 글 목록