이항 계수가 뭔지 몰라서 우선 이해할 수 있는 선까지는 정리를 해봄. 그래도 반 정도는 이해한거 같고 마지막에 읽어본 이 블로그(https://st-lab.tistory.com/159)가 궁금했던 부분 이해하는데 도움이 많이 됐다. 사실 이항 계수가 이런거고 저런거고를 떠나서 그냥 위 점화식을 코드로 구현하면 되긴하지만~ import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class BJ11050 { public static void main(String[] args) throws IOException { Buffere..
문제 땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다. 달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다. 달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) 출력 첫째 줄에 달팽이가 나무 막대를 모두 올라가는데 며칠이 걸리는지 출력한다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.uti..
문제 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌을 때, 벌집의 중앙 1에서 N번 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나가는지(시작과 끝을 포함하여)를 계산하는 프로그램을 작성하시오. 예를 들면, 13까지는 3개, 58까지는 5개를 지난다. 입력 첫째 줄에 N(1 ≤ N ≤ 1,000,000,000)이 주어진다. 출력 입력으로 주어진 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나는지 출력한다. import java.io.BufferedReader; import java.io.IOException; import java.io.In..
문제 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 된다. 따라서 245는 256의 생성자가 된다. 물론, 어떤 자연수의 경우에는 생성자가 없을 수도 있다. 반대로, 생성자가 여러 개인 자연수도 있을 수 있다. 자연수 N이 주어졌을 때, N의 가장 작은 생성자를 구해내는 프로그램을 작성하시오. 입력 첫째 줄에 자연수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 출력 첫째 줄에 답을 출력한다. 생성자가 없는 경우에는 0을 출력한다. 코드1 import java.io.BufferedReader; import java.io.I..
문제 한수는 지금 (x, y)에 있다. 직사각형은 각 변이 좌표축에 평행하고, 왼쪽 아래 꼭짓점은 (0, 0), 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 x, y, w, h가 주어진다. 출력 첫째 줄에 문제의 정답을 출력한다. 코드1 우선 문제를 풀기에 앞서서 왜 자바에서 Scanner가 아닌 BufferedReader로 입력받는지 또 까먹었다. 후다닥 찾아보고 옴. https://snupi.tistory.com/48 맨날 찾아보고 이해하고 또 까먹기를 반복하지만...^^ 또 한번 이해 완료. 문제 생각보다 쉽길래 한 번에 될 줄 알았고 코드 써보았지만 역시나 아님. 입력값 구분이 줄바꿈이 아닌 공백으로 되는데 줄 ..
문제 2×n 직사각형을 1×2, 2×1과 2×2 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×17 직사각형을 채운 한가지 예이다. 입력 첫째 줄에 n이 주어진다. (1 ≤ n ≤ 1,000) 출력 첫째 줄에 2×n 크기의 직사각형을 채우는 방법의 수를 10,007로 나눈 나머지를 출력한다. 첫 번째 코드 냅다 그려봤다. 생각보다 규칙이 금방 보인다! 역시 틀렸다. 다시 생각해보니 내 점화식이 틀렸다... 두덩이(2X1)를 가로로 쌓을 때랑 정사각형(2X2)가 공존할 수 있다는 사실을 생각안했다... import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import ..
문제 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. 입력 첫째 줄에 n이 주어진다. (1 ≤ n ≤ 1,000) 출력 첫째 줄에 2×n 크기의 직사각형을 채우는 방법의 수를 10,007로 나눈 나머지를 출력한다. 첫 번째 코드 생각하다가 너무 막막해서 후다닥 다른 사람 글 보고 왔다! https://youngest-programming.tistory.com/446 막상 그려보면 쉽게 보인다니 나도 점잖은 마음으로 차분히 그려보기로. 진짜 쉽게 찾아졌다! 점화식 구했으니 그냥 저대로 풀어도 되겠지만 이 패턴 너무 익숙해서 더 쉽게 코드 쓸 수 있는 방법을 찾아낼 수 있을거 같다. 는 무슨..
문제 정수 X에 사용할 수 있는 연산은 다음과 같이 세 가지 이다. X가 3으로 나누어 떨어지면, 3으로 나눈다. X가 2로 나누어 떨어지면, 2로 나눈다. 1을 뺀다. 정수 N이 주어졌을 때, 위와 같은 연산 세 개를 적절히 사용해서 1을 만들려고 한다. 연산을 사용하는 횟수의 최솟값을 출력하시오. 입력 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. 출력 첫째 줄에 연산을 하는 횟수의 최솟값을 출력한다. 첫 번째 코드 처음에는 나눌 수 있는 가장 큰 수로 나눈다면 가장 적은 연산 횟수로 1을 만들 수 있을거라고 생각해 아래와 같이 코드를 적었다. import java.io.BufferedReader; import java.io.IOException; import java...
- Total
- Today
- Yesterday
- 컴퓨터학과
- 웹
- RDD
- 아이엘츠
- 자바 1004번
- 컴공
- 백준 1004
- 백준 2108
- 생활코딩
- 백준9375번
- 동덕여대
- BFS
- 그리디 알고리즘
- 안드로이드
- 코틀린
- 스프링부트
- 13305 자바
- 스프링부터
- 프로그래밍
- 컴과
- 자바 9375
- 스파크
- 알고리즘
- 인프런 김영한 강의
- 동덕여대 컴퓨터학과
- 백준
- 자바
- 코딩
- 개발
- 스프링 강의
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |