깡니즈 개발로그

깡니즈 개발로그

  • 분류 전체보기 (44)
    • 운영체제 (6)
    • 알고리즘 (38)
  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록
  • Github @gaonK
RSS 피드
로그인
로그아웃 글쓰기 관리

깡니즈 개발로그

컨텐츠 검색

태그

MAP 백트래킹 DP 그리디 트리 프로그래머스 이항계수 이분탐색 탐욕법 permutation 수학 순열 BFS 분할정복 다이나믹프로그래밍 백준 알고리즘 운영체제 에라토스테네스의체 OS

최근글

댓글

공지사항

아카이브

백준(31)

  • [백준] 11493번: 이항 계수 5

    2019.08.02
  • [백준] 10830번: 행렬 제곱

    2019.07.26
  • [백준] 1016번: 제곱 ㄴㄴ 수

    2019.07.26
  • [백준] 1629번: 곱셈

    2019.07.26
  • [백준] 1495번: 기타리스트

    2019.07.12
  • [백준] 1720번: 타일 코드

    2019.07.12
[백준] 11493번: 이항 계수 5

문제 자연수 N과 정수 K가 주어졌을 때 이항 계수 (NK)를 M으로 나눈 나머지를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N, K와 M이 주어진다. (1 ≤ N ≤ 4×10^6, 0 ≤ K ≤ N, 2 ≤ M ≤ 4×10^6) 출력 (NK)를 M으로 나눈 나머지를 출력한다. 이항 계수의 나머지를 구하는 문제인데, N과 K, M이 모두 크기가 큰 수라 이항 계수를 직접 구해서 계산하는 것으로는 문제를 해결할 수 없습니다. 문제를 해결하기 위해서는, 이항 계수의 성질과 나머지의 성질을 이용해서 문제를 풀어야 합니다. 이항 계수는 N! / (K! * (N - K)!) 라는 것과, 나머지 연산이 곱셈에 대해서는 (A * B) % M = ((A % M) * (A % M)) % M 이라는 것을 알 수 있기..

2019. 8. 2. 16:11
[백준] 10830번: 행렬 제곱

문제 크기가 N*N인 행렬 A가 주어진다. 이때, A의 B제곱을 구하는 프로그램을 작성하시오. 수가 매우 커질 수 있으니, A^B의 각 원소를 1,000으로 나눈 나머지를 출력한다. 입력 첫째 줄에 행렬의 크기 N과 B가 주어진다. (2 ≤ N ≤ 5, 1 ≤ B ≤ 100,000,000,000) 둘째 줄부터 N개의 줄에 행렬의 각 원소가 주어진다. 행렬의 각 원소는 1,000보다 작거나 같은 자연수 또는 0이다. 출력 첫째 줄부터 N개의 줄에 걸쳐 행렬 A를 B제곱한 결과를 출력한다. 행렬의 곱셈을 수행할 수 있는 함수를 정의하고, 지수 승을 나타내는 b의 크기가 굉장히 크기 때문에, 분할 정복을 이용해서 문제를 풀었습니다. n*n 같은 행렬을 제곱하는 형태이기 때문에 순서에 상관 없이 곱셈을 수행해줘..

2019. 7. 26. 22:12
[백준] 1016번: 제곱 ㄴㄴ 수

1016번: 제곱 ㄴㄴ 수 첫째 줄에 min과 max가 주어진다. min은 1보다 크거나 같고, 1,000,000,000,000보다 작거나 같은 자연수이고, max는 min보다 크거나 같고, min+1,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 문제 어떤 수 X가 1보다 큰 제곱수로 나누어 떨어지지 않을 때, 제곱ㄴㄴ수라고 한다. 제곱수는 정수의 제곱이다. min과 max가 주어지면, min과 max를 포함한 사이에 제곱ㄴㄴ수가 몇 개 있는지 출력한다. 입력 첫째 줄에 min과 max가 주어진다. min은 1보다 크거나 같고, 1,000,000,000,000보다 작거나 같은 자연수이고, max는 min보다 크거나 같고, min+1,000,000보다 작거나 같은 자연수이다. 출..

2019. 7. 26. 19:05
[백준] 1629번: 곱셈

1629번: 곱셈 첫째 줄에 A, B, C가 빈 칸을 사이에 두고 순서대로 주어진다. A, B, C는 모두 2,147,483,647 이하의 자연수이다. www.acmicpc.net 문제 자연수 A를 B번 곱한 수를 알고 싶다. 단 구하려는 수가 매우 커질 수 있으므로 이를 C로 나눈 나머지를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 A, B, C가 빈 칸을 사이에 두고 순서대로 주어진다. A, B, C는 모두 2,147,483,647 이하의 자연수이다. 출력 첫째 줄에 A를 B번 곱한 수를 C로 나눈 나머지를 출력한다. 예제 입력 1 10 11 12 예제 출력 1 4 B의 범위가 굉장히 큰 것을 알 수 있죠. 이걸 반복문으로 처리하려고 하면 시간 초과가 날 수 있습니다. n제곱을 해결하는 방법은 분..

2019. 7. 26. 18:29
[백준] 1495번: 기타리스트

1495번: 기타리스트 첫째 줄에 N, S, M이 주어진다. (1 ≤ N ≤ 100, 1 ≤ M ≤ 1000, 0 ≤ S ≤ M) 둘째 줄에는 각 곡이 시작하기 전에 줄 수 있는 볼륨의 차이가 주어진다. 이 값은 1보다 크거나 같고, M보다 작거나 같다. www.acmicpc.net 문제 Day Of Mourning의 기타리스트 강토는 다가오는 공연에서 연주할 N개의 곡을 연주하고 있다. 지금까지 공연과는 다른 공연을 보여주기 위해서 이번 공연에서는 매번 곡이 시작하기 전에 볼륨을 바꾸고 연주하려고 한다. 먼저, 공연이 시작하기 전에 각각의 곡이 시작하기 전에 바꿀 수 있는 볼륨의 리스트를 만들었다. 이 리스트를 V라고 했을 때, V[i]는 i번째 곡을 연주하기 전에 바꿀 수 있는 볼륨을 의미한다. 항상..

2019. 7. 12. 06:19
[백준] 1720번: 타일 코드

1720번: 타일 코드 문제 2×N 크기의 넓은 판을 1×2 (또는 2×1) 크기와 2×2 크기의 타일로 채우려고 한다. 여러 가지 경우가 있을 수 있으므로, 각각을 하나의 코드로 대응시켜서 암호화에 이용하려고 한다. 그런데 문제가 생겼다. 넓은 판을 교환하다 보니 좌우 대칭인 경우가 있어, 뒤집히는 경우 코드가 헷갈리게 되는 경우가 발생한 것이다. 예를 들어 아래의 두 경우는 달라 보이지만 좌우 대칭을 이루고 있다. N이 주어지면, 전체 타일 코드의 개수를 구하는 프로그램을 www.acmicpc.net 문제 2×N 크기의 넓은 판을 1×2 (또는 2×1) 크기와 2×2 크기의 타일로 채우려고 한다. 여러 가지 경우가 있을 수 있으므로, 각각을 하나의 코드로 대응시켜서 암호화에 이용하려고 한다. 그런데 ..

2019. 7. 12. 00:39
1 2 3 4 ··· 6
© 2019 Gaon Kim. All right reserved.

티스토리툴바