줌코딩의 코딩일기
Zoom in Coding
-
(백준 알고리즘 문제풀이) 1436번 영화감독 숌
문제 문제 링크 어떻게 접근할 것인가 어떻게 문제를 풀지 엄청 고민하다가 그냥 처음부터 하나씩 찾아봐주기로 했다. 3개의 숫자가 연속적으로 6을 만들면 cnt를 높여주고 cnt가 n과 동일해지면 그 수를 출력한다. 코드 #include <cstdio> int main(){ int num = 666, cnt = 0, rank = 0, temp, n; scanf("%d", &n); while(1){ temp...
-
(백준 알고리즘 문제풀이) 1300번 K번째 수
문제 문제 링크 어떻게 접근할 것인가 전혀 감이 잡히지 않다가 욱제님의 블로그를 가보고 문제를 어떻게 접근할지 생각할 수 있게 되었다.욱제님의 블로그 i번째 숫자들 중에서 임의의 숫자 m을 넘지 않는 애들을 다 모아주면 된다. 그렇다면 일일이 매 행마다 m을 넘지 않을 때까지 세주려고 했으나… i행의 개수 세기 i행의 숫자들은 i*1, i*2,...
-
(백준 알고리즘 문제풀이) 1654번 랜선 자르기
문제 문제 링크 어떻게 접근할 것인가 이것은 랜선 개수를 N개까지 나눠주는 최댓값을 찾아주는 문제이다. 즉, 랜선 개수가 N개인 upper_bound를 찾아주면 된다! 주의할 점 type은 long long을 사용하자! 코드 #include <cstdio> long long n, m, l = 1, r, mid, cnt, ans, arr[10001]; int main(){ scanf("%lld %lld", &n, &m); for(int i...
-
(백준 알고리즘 문제풀이) 10830번 행렬 곱셈
문제 문제 링크 어떻게 접근할 것인가 mat1은 항등행렬로 저장하고 mat2에는 값을 넣어서 저장한다. B를 이진수로 변환해서 이진수를 쭉 돌면서 연산한다. 1이면 mat1 = (mat1 * mat1) * mat2 이고, 0이면 mat1 = (mat1 * mat1) 해준다. 주의할 점 매 연산마다 꼭 mod를 해줘야한다! 코드 #include <cstdio> #include <vector> using namespace...
-
(백준 알고리즘 문제풀이) 1107번 리모컨
문제 문제 링크 어떻게 접근할 것인가 고민고민하다가 결국에 사람처럼 되는 수를 하나씩 늘리면서 확인하는 bruteforce를 생각해냈다. 주의할 점 100에서 부터의 거리가 최종 구한 값보다 크다면 100에서의 거리를 출력해라 만약 정답이 10까지의 거리를 구한다고 할때 11보다 9에서 쓰는게 개수를 하나 덜 쓴다. 즉 빼기 값을 먼저 확인해야한다. 10개 모두 고장난 경우...