Category: problems

0

백준[2573] - 빙산

문제백준 2573 문제 보기 접근 방법빙산을 주변으로 4방향을 검사한 뒤 각 면이 몇개의 바다에 둘러 쌓여 있는지 모두 확인한다. 그리고 완전 탐색을 이용해 빙산이 분리됐는지 체크한다. 코드#include <iostream> #include <vector> #include <cstring> using namespace std; int r,

0

백준[2589] - 보물섬

문제백준 2589 문제 보기 접근 방법모든 땅에서 bfs를 진행하고 그 중에서 가장 큰 값을 찾는다. 코드#include <iostream> #include <algorithm> #include <cstring> #include <queue> using namespace std; struct location { int r;

0

백준[9471] - 피사노 주기

문제백준 9471 문제 보기 접근 방법피보나치 수열을 특정 값으로 나눈 나머지가 주기를 이룬다는 피사노 주기를 구현하는 문제이다. 배열을 사용하면 간단하게 풀수 있지만 데이터의 범위가 너무 많아 배열은 사용할 수 없다.새롭게 생각한 방법은 피보나치 수열을 계속 구하되 n-2와 n-1이 수열의 시작인 0과 1일 경우 주기가 시작되는 위치라는 점을 활용했다.

0

백준[10826] - 피보나치 수4

문제백준 10826 문제 보기 접근 방법일반적인 피보나치 수열의 문제를 풀듯이 dp를 활용해 문제를 풀수는 있다. 하지만 이는 약 1500번째 언저리 피보나치 수까지만 유효하다. 왜냐하면 1500 번째 근처 수열에서 long long의 범위를 넘어간다.문제에서의 N은 10000이고 해당 수까지의 수열을 구해야 한다. 따라서 문자열을 활용해 직접 덧셈을 진행

0

백준[2749] - 피보나치 수3

문제백준 2749 문제 보기 접근 방법피보나치 수열을 푸는 방식은 여러가지가 존재한다. 재귀를 활용하여 O(N^2)으로 푸는 방법, dp를 활용해 O(N)으로 푸는 방법이 많이 알려진 방식이다.하지만 이번 문제는 입력이 10^18이라는 거대한 숫자이므로 저 두 가지 방법 모두 해답은 아니다.여러가지 방법을 찾다가 피보나치 수열을 특정 수로 나눌때 주기가 존

0

백준[10830] - 행렬 제곱

문제백준 10830 문제 보기 접근 방법분할 정복으로 풀긴했지만 뭔가 삽질을 좀 많이한 문제다. 원인은 입력값을 제대로 신경쓰지 않았기때문이다.1000으로 행렬이 들어올 경우 제곱되는 B의 값이 1이라면 출력은 0으로 나와야하지만 1000으로 그대로 출력해 삽질 좀 했다.풀이 과정은 지수 법칙을 이용했다. B가 너무 크므로 행렬의 곱을 B번 진행한다면 당연