본문 바로가기
728x90
반응형

java230

[Cos Pro 1급 java] [4차] 문제8) n번째 작은 수 구하기 안녕하세요 이번 포스팅은 Cos Pro 1급 java 4차 기출 문제 중 8번 문제인 n번째 작은 수 구하기 입니다. 개인적으로는 이번 문제가 가장 어려웠다고 생각합니다. □ 문제설명 1 이상 9 이하 숫자가 적힌 카드를 이어 붙여 숫자를 만들었습니다. 이때, 숫자 카드를 조합해 만든 수 중에서 n이 몇 번째로 작은 수인지 구하려 합니다. 예를 들어, 숫자 카드 1, 2, 1, 3로 만들 수 있는 수를 작은 순으로 나열하면 [1123, 1132, 1213, 1231, 1312, ... , 3121, 3211]입니다. n이 1312라면, 숫자 카드를 조합해 만든 수 중 n은 n은 5번째로 작은 수입니다. 숫자 카드를 담은 배열 card, card의 길이 card_len, 수 n이 매개변수로 주어질 때 숫자.. 2021. 3. 25.
[Cos Pro 1급 java] [6차] 문제6) 만났을때 최대인 경우 안녕하세요 이번 포스팅은 Cos Pro 1급 java 6차 기출문제 중 6번 문제인 만났을 때 최대인 경우 문제를 풀어보겠습니다. □ 문제설명 4 x 4 크기인 정사각형 종이가 1 x 1 크기인 격자 칸으로 나누어져 있습니다. 이 종이를 가로축 혹은 세로축에 평행한 격자 선을 따라 한 번 접었을 때, 만나는 격자 칸에 적힌 숫자의 합이 최대가 되도록 하려 합니다. 종이를 접을 때는 만나는 격자 칸이 정확히 일치하도록 해야 합니다. 예를 들어 다음과 같이 4 x 4 크기인 종이가 있을 때, 종이는 점선 중 하나를 따라서 접을 수 있습니다. 이때, 붉은색 점선을 따라 종이를 접으면 36과 19가 적힌 칸이 정확히 만납니다. 두 숫자의 합은 55이며, 이때가 최댓값입니다. 4 x 4 크기인 정사각형 종이의 각.. 2021. 3. 24.
[Cos Pro 1급 java] [6차] 문제5) 코인을 많이 획득하세요 coins[i][j] = board[i][j] + Math.max(coins[i-1][j], coins[i][j-1]); 안녕하세요. 이번 포스팅은 Cos Pro 1급 java 6차 기출 문제 중 5번 문제인 코인을 많이 획득하세요를 풀어보겠습니다. 처음에 BFS를 이용해서 풀어야 하나 싶었는데 굳이 그렇게 안해도 풀리는 것 같더라구요.. □ 문제설명 A 게임은 4x4 격자 모양의 보드의 가장 왼쪽 위에서 가장 오른쪽 아래로 말을 이동시키면서 각 구역에 있는 코인을 획득하는 게임입니다. 이때, 말은 오른쪽 또는 아래쪽으로만 이동할 수 있습니다. 예를 들어, 보드가 아래와 같다면 아래의 경우가 코인을 최대로 획득할 수 있는 경우이고 이때 획득하는 코인은 38입니다. 각 구역에서 획득할 수 있는 코인 양을 .. 2021. 3. 24.
[Cos Pro 1급 java] [6차] 문제4) 카드 섞기 안녕하세요 이번 포스팅은 Cos Pro 1급 java 6차 기출 문제 중 4번 문제인 카드 섞기를 풀어보겠습니다. 한 줄 바꾸기 문제 중 많은 시간이 걸린 문제라 다뤄보겠습니다. □ 문제설명 1부터 n까지 숫자가 적힌 카드 뭉치를 다음 규칙에 따라 카드 뭉치를 섞었을 때, 아래에서부터 k번째에 있는 카드에 적힌 숫자를 알아내려합니다. 카드 뭉치 가장 아래에는 1이 쓰여있으며, 위로 갈수록 숫자가 커집니다. 카드 뭉치를 섞는 규칙은 다음과 같습니다. 카드 뭉치를 정확히 반으로 나눕니다. 두 개로 나뉜 카드 뭉치를 교차로 섞어서 카드 뭉치 하나를 만듭니다. 이때, 항상 1이 적힌 카드가 있는 뭉치를 아래로 놓고 섞습니다. 위 과정을 반복합니다. 예를 들어, 1부터 6까지 숫자가 적힌 카드 뭉치를 3번 섞는다.. 2021. 3. 24.
[수학 퍼즐 / java] 06.콜라츠 추측 안녕하세요. 이번 포스팅은 프로그래머의 뇌를 단련하는 수학퍼즐 6번문제인 콜라츠 추측을 풀어보겠습니다 지금까지 미결로 남아 있는 수학 문제 중에 콜라츠 추측(Collatz Conjecture)이 있다. ​ 자연수 n에 대하여 ​ - n이 짝수인 경우, n을 2로 나눈다. ​ - n이 홀수인 경우, n에 3을 곱해 1을 더한다. ​ 이 계산을 반복하면 초깃값이 어떤 수였더라도 반드시 1에 도달한다. ​ (1 → 4 → 2 → 1과 같이 반복) ​ ​ ​ 이 내용을 조금 바꾸어 초깃값이 짝수면 맨 처음에만 n에 3을 곱하여 1을 더하는 것에서 시작하기로 하고 '맨 처음의 수'로 돌아가는 법을 생각해본다. ​ ​ ​ 예를 들어 2로 시작하는 경우에는 다음과 같다 ​ 2 → 7 → 22 →11 → 34 → 17.. 2021. 3. 23.
[수학 퍼즐 / java] 05. 아직도 현금으로 계산하다니! 안녕하세요. 이번 포스팅은 프로그래머의 뇌를 단련하는 수학퍼즐 5번문제인 아직도 현금으로 계산하다니! 를 풀어보겠습니다 요즘에는 지하철이건 버스건 전자 화폐가 당연시 된다. 하지만, 아직도 현금으로 계산하는 사람도 있다. ​ 이번에는 현금으로 내는 사사람을 위한 동전 교환기를 떠올려 보자. 이 기계는 10원, 50원, 100원, 500원 동전으로 섞어서 교환할 수 있고 모든 동전은 충분한 개수가 마련되어 있다고 가정한다. ​ 문제 1,000원 지폐를 넣었을 때 나오는 동전의 조합이 몇 가지인지 구해보시오. 동전의 순서는 무시한다. package changePaperToCoin; import java.util.Scanner; public class ChangePaperToCoin { public stati.. 2021. 3. 23.
728x90
반응형