728x90 반응형 알고리즘/수학 퍼즐5 [수학 퍼즐 / 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. [수학 퍼즐 / java] 04. 막대 자르기 안녕하세요. 이번 포스팅은 프로그래머의 뇌를 단련하는 수학퍼즐 4번문제인 막대 자르기 를 풀어보겠습니다 길이 n[cm]의 한 막대를 1[cm] 단위로 자른다고 생각해 본다. 단, 하나의 막대는 한 번에 한 사람만이 자를 수 있다. 잘린 막대가 3개가 되면, 동시에 3명이 자를 수 있다. 최대 m명이 있을 때 막대를 자르는 최소 횟수를 구해 보시오. 예를 들어 n = 8, m = 3일 총 4번 자를 수 있다. 문제 1 n = 20, m = 3일 때의 횟수를 구해 보아라. 문제 2 n = 100, m = 5일 때의 횟수를 구해 보아라. package cutBar; import java.util.Scanner; public class CutBar { public static void .. 2021. 3. 23. [수학퍼즐 / java] 03.카드를 뒤집어라! 안녕하세요. 이번 포스팅은 프로그래머의 뇌를 단련하는 수학퍼즐 3번문제인 카드를 뒤집어라! 를 풀어보겠습니다 1~100의 번호가 쓰인 100장의 카드가 순서대로 나열되어 있다. 모든 카드는 뒷면이 위를 향한 상태로 놓여 있다. 한 사람이 2번 카드부터 1장 간격으로 카드를 뒤집어 나간다. 그러면 2, 4, 6, ... , 100번 카드의 앞면이 나타나게 된다. 그 다음으로, 다른 사람이 3번 카드부터 2장 간격으로 카드를 뒤집어 나간다( 뒷면이 위를 향한 카드는 앞면이 보이게 되고 앞면이 위를 향한 카드는 뒷면이 보이게 된다.) 다시 다른 사람이 4번 카드부터 3장 간격으로 카드를 뒤집어 나간다. 이렇게 n번째의 카드부터 n-1장 간격으로 카드를 뒤집는 작업을 뒤집을 카드가 더는 없.. 2021. 3. 23. [수학 퍼즐 / java] 01.앞뒤가 같은 10진수 만들기 안녕하세요. 이 카테고리의 게시글은 프로그래머의 뇌를 단련하는 수학퍼즐 책을 풀어볼 겁니다. 첫번째 문제부터 가보겠습니다. 앞뒤가 같아 거꾸로 읽어도 같은 수를 '대칭수' 또는 '거울수'라고 한다. 예를 들면 '123454321'과 같은 수를 의미한다. 문제 10진수, 2진수, 8진수 그 어느 것으로 표현하여도 대칭수가 되는 수 중, 10진수에서 10이상인 최솟값을 구해보시오. 예) 9 (10진수) = 1001(2진수) = 11(8진수) ※ 위의 예시는 10진수에서 10미만이므로 제외 package equalFtoB; public class EqaulFtoB { public static void main(String[] args) { int init = 10; String binSt.. 2021. 3. 23. 이전 1 다음 728x90 반응형