math

    [java] 프로그래머스 (카펫) Level 2

    Problem : https://programmers.co.kr/learn/courses/30/lessons/42842 코딩테스트 연습 - 카펫 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 programmers.co.kr Approach 수학적 규칙을 찾는다면 편한 문제이다. 일단 전체 사각형 넓이는 (가로) x (세로) = brown + yellow 이다. 그리고 전체 사각형의 (가로 - 2) x (세로 - 2) = yellow 이다. 이 두 성질을 이용하여 전체 사각형의 넓이를 가질 수 있는 (가로, 세로)의 쌍 중에 (가로 - 2) x (세로 - 2) ..

    [java] 백준 11444 (피보나치 수 6) Gold 3

    Problem : https://www.acmicpc.net/problem/11444 11444번: 피보나치 수 6 첫째 줄에 n이 주어진다. n은 1,000,000,000,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net Approach 유명한 피보나치 수열의 n번째 수를 구하는 문제이다. 이 문제는 백준 2749 피보나치 수 3 문제와 나머지 연산 부분만 다르고 아예 똑같은 문제이다. 문제풀이 개수 늘리기 좋다. 하지만 n이 1,000,000,000,000,000,000 이하의 숫자이므로 오랜시간이 걸릴 것이다. 따라서 아래와 같이 피보나치의 행렬적 규칙을 이용하여 계산하여야 한다. (long 자료형을 사용하여) 아래 규칙만 알고 있다면 O(log n)의 행렬제곱 문제와 ..

    [java] 백준 1629 (곱셈) Silver 1

    Problem : https://www.acmicpc.net/problem/1629 1629번: 곱셈 첫째 줄에 A, B, C가 빈 칸을 사이에 두고 순서대로 주어진다. A, B, C는 모두 2,147,483,647 이하의 자연수이다. www.acmicpc.net Approach 수학적 지식이 있어야 하는 분할정복(Divide & Conquer)문제이다. A^4 % C = ((A^2 % C) * (A^2 % C)) % C A^5 % C = ((((A^2 % C) * (A^2 % C)) % C) * A) % C 위의 규칙을 이용하여 구현하면 된다. Code import java.io.*; /** * no.1629 : 곱셈 * hint : A^2 % C = ((A % C) * (A % C)) % C */ p..