본문 바로가기

백준168

[백준] 자바 9461 파도반 수열 문제 오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여 있다. 첫 삼각형은 정삼각형으로 변의 길이는 1이다. 그다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다. 나선에서 가장 긴 변의 길이를 k라 했을 때, 그 변에 길이가 k인 정삼각형을 추가한다. 파도반 수열 P(N)은 나선에 있는 정삼각형의 변의 길이이다. P(1)부터 P(10)까지 첫 10개 숫자는 1, 1, 1, 2, 2, 3, 4, 5, 7, 9이다. N이 주어졌을 때, P(N)을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, N이 주어진다. (1 ≤ N ≤ 100) 출력 각 테스트 케이스마다 P(N)을 출력한다. 테스트 케이스 입력 1 5 1 2 3 4 5.. 2021. 9. 22.
[백준] 자바 11727 2xn 타일링 2 문제 2 ×n 직사각형을 1 × 2, 2 ×1과 2 × 2 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×17 직사각형을 채운 한 가지 예이다. 입력 첫째 줄에 n이 주어진다. (1 ≤ n ≤ 1,000) 출력 첫째 줄에 2×n 크기의 직사각형을 채우는 방법의 수를 10,007로 나눈 나머지를 출력한다. 테스트 케이스 입력 1 501 출력 1 4172 입력 2 1 출력 2 1 입력 3 1000 출력 3 7326 접근 코드 자체는 간단하지만 dp문제이므로 규칙 찾는 게 핵심인 문제인 듯합니다. 1.2*n 식에 들어갈 n을 입력받습니다. 일단 n이 몇이든간에, 시작은 그림과 같이 3가지 경우로 블록은 쌓이면서 시작합니다.(n이 1일 때만 제외하고) n이 1일때랑, 2일 때의 개수를.. 2021. 9. 21.
[백준] 자바 2164 카드2 문제 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 한 장 남을 때까지 반복하게 된다. 우선, 제일 위에 있는 카드를 바닥에 버린다. 그다음, 제일 위에 있는 카드를 제일 아래에 있는 카드 밑으로 옮긴다. 예를 들어 N=4인 경우를 생각해 보자. 카드는 제일 위에서부터 1234 의 순서로 놓여있다. 1을 버리면 234가 남는다. 여기서 2를 제일 아래로 옮기면 342가 된다. 3을 버리면 42가 되고, 4를 밑으로 옮기면 24가 된다. 마지막으로 2를 버리고 나면, 남는 카드는 4가 된다. N이 주어졌을 때, 제일 마지막에 남게 되는 카드를 구하는 프로그.. 2021. 9. 20.
[백준] 자바 8979 올림픽 문제 올림픽은 참가에 의의가 있기에 공식적으로는 국가 간 순위를 정하지 않는다. 그러나, 많은 사람들이 자신의 국가가 얼마나 잘하는지에 관심이 많기 때문에 비공식적으로는 국가 간 순위를 정하고 있다. 두 나라가 각각 얻은 금, 은, 동메달 수가 주어지면, 보통 다음 규칙을 따라 어느 나라가 더 잘했는지 결정한다. 금메달 수가 더 많은 나라 금메달 수가 같으면, 은메달 수가 더 많은 나라 금, 은메달 수가 모두 같으면, 동메달 수가 더 많은 나라 각 국가는 1부터 N 사이의 정수로 표현된다. 한 국가의 등수는 (자신보다 더 잘한 나라 수) + 1로 정의된다. 만약 두 나라가 금, 은, 동메달 수가 모두 같다면 두 나라의 등수는 같다. 예를 들어, 1번 국가가 금메달 1개, 은메달 1개를 얻었고, 2번 국가.. 2021. 9. 17.
[백준] 자바 1026 보물 문제 옛날 옛적에 수학이 항상 큰 골칫거리였던 나라가 있었다. 이 나라의 국왕 김지민은 다음과 같은 문제를 내고 큰 상금을 걸었다. 길이가 N인 정수 배열 A와 B가 있다. 다음과 같이 함수 S를 정의하자. S = A [0] ×B [0] +... + A [N-1] ×B [N-1] S의 값을 가장 작게 만들기 위해 A의 수를 재배열하자. 단, B에 있는 수는 재배열하면 안 된다. S의 최솟값을 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거나 같은 음이 아닌 정수이다. 출력 첫째 줄에 S의 최솟값을 출력한다. 테.. 2021. 9. 16.
[백준] 자바 11653 소인수분해 문제 정수 N이 주어졌을 때, 소인수 분해하는 프로그램을 작성하시오. 입력 첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다. 출력 N의 소인수분해 결과를 한 줄에 하나씩 오름차순으로 출력한다. N이 1인 경우 아무것도 출력하지 않는다. 테스트 케이스 입력 1 1000000 출력 1 2 2 2 2 2 2 5 5 5 5 5 5 입력 2 7 출력 2 7 입력 3 5000 출력 3 2 2 2 5 5 5 5 접근 1.수를 입력받습니다. 2. 순서대로 소인수 분해한 결과를 출력해줍니다. 하나의 증가하는 변수를 지정하여 반복문을 돌면서 지정한 변수로 나눠 떨어지는지 검사하면서 입력받은 값이 1이 될 때까지 반복합니다. 코드 import java.awt.desktop.SystemEventListen.. 2021. 9. 15.
반응형