본문 바로가기

전체 글

(138)
기사단원의 무기 /* 기사단원의 무기 * 숫자나라 기사단의 각 기사에게는 1번부터 number까지 번호가 지정되어 있습니다. * 기사들은 무기점에서 무기를 구매하려고 합니다. * 각 기사는 자신의 기사 번호의 약수 개수에 해당하는 공격력을 가진 무기를 구매하려 합니다. * 단, 이웃나라와의 협약에 의해 공격력의 제한수치를 정하고, * 제한수치보다 큰 공격력을 가진 무기를 구매해야 하는 기사는 * 협약기관에서 정한 공격력을 가지는 무기를 구매해야 합니다. * * 예를 들어, 15번으로 지정된 기사단원은 15의 약수가 1, 3, 5, 15로 4개 이므로, * 공격력이 4인 무기를 구매합니다. * 만약, 이웃나라와의 협약으로 정해진 공격력의 제한수치가 3이고 * 제한수치를 초과한 기사가 사용할 무기의 공격력이 2라면, * 1..
저주의 숫자 3 /* 저주의 숫자 3 * 3x 마을 사람들은 3을 저주의 숫자라고 생각하기 때문에 * 3의 배수와 숫자 3을 사용하지 않습니다. * 3x 마을 사람들의 숫자는 다음과 같습니다. * * 10진법 3x 마을에서 쓰는 숫자 * 1 1 * 2 2 * 3 4 - * 4 5 * 5 7 - * 6 8 * 7 10 - * 8 11 * 9 14 - * 10 16 - * 정수 n이 매개변수로 주어질 때, n을 3x 마을에서 사용하는 숫자로 바꿔 return * * n result * 15 25 * 40 76 */ 1234567891011121314151617181920212223public class programmer_0_91 { static int a1 = 15; static int a2 = 40; public int..
특이한 정렬 /* 특이한 정렬 * 정수 n을 기준으로 n과 가까운 수부터 정렬하려고 합니다. * 이때 n으로부터의 거리가 같다면 더 큰 수를 앞에 오도록 배치합니다. * 정수가 담긴 배열 numlist와 정수 n이 주어질 때 * numlist의 원소를 n으로부터 가까운 순서대로 정렬한 배열을 return * * numlist n result * [1, 2, 3, 4, 5, 6] 4 [4, 5, 3, 6, 2, 1] * [10000,20,36,47,40,6,10,7000] 30 [36, 40, 20, 47, 10, 6, 7000, 10000] */ 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525..
유한소수 판별하기 /* 유한소수 판별하기 * 소수점 아래 숫자가 계속되지 않고 유한개인 소수를 유한소수라고 합니다. * 분수를 소수로 고칠 때 유한소수로 나타낼 수 있는 분수인지 판별하려고 합니다. * * 유한소수가 되기 위한 분수의 조건은 다음과 같습니다. * 기약분수로 나타내었을 때, 분모의 소인수가 2와 5만 존재해야 합니다. * 두 정수 a와 b가 매개변수로 주어질 때, * a/b가 유한소수이면 1을, 무한소수라면 2를 return * * a b result * 7 20 1 분모 20의 소인수가 2, 5이기 때문에 유한소수 * 11 22 1 분모 2는 소인수가 2 뿐이기 때문에 유한소수 * 12 21 2 분모 7은 소인수가 7 이므로 무한소수 */ 1234567891011121314151617181920212223..
직사각형의 넓이 /* 직사각형의 넓이 * 2차원 좌표 평면에 변이 축과 평행한 직사각형이 있습니다. * 직사각형 네 꼭짓점의 좌표 [[x1, y1], [x2, y2], [x3, y3], [x4, y4]]가 담겨있는 * 배열 dots가 매개변수로 주어질 때, * 직사각형의 넓이를 return * * dots result * [[1, 1], [2, 1], [2, 2], [1, 2]] 1 가로, 세로 길이는 각각 1, 1 * [[-1, -1], [1, 1], [1, -1], [-1, 1]] 4 직사각형의 가로, 세로 길이는 각각 2, 2 */ 12345678910111213141516171819202122232425import java.lang.*;public class programmer_0_88 { static int[]..
컨트롤 제트 /* 컨트롤 제트 * 숫자와 "Z"가 공백으로 구분되어 담긴 문자열이 주어집니다. * 문자열에 있는 숫자를 차례대로 더하려고 합니다. * 이 때 "Z"가 나오면 바로 전에 더했던 숫자를 뺀다는 뜻입니다. * 숫자와 "Z"로 이루어진 문자열 s가 주어질 때, 머쓱이가 구한 값을 return * * s result * "1 2 Z 3" 4 * "10 20 30 40" 100 * "10 Z 20 Z 1" 1 * "10 Z 20 Z" 0 * "-1 -2 -3 Z" -3 */ 12345678910111213141516171819202122232425262728293031323334public class programmer_0_87 { static String a1 = "1 2 Z 3"; static String ..
삼각형의 완성조건 (2) /* 삼각형의 완성조건 (2) * 선분 세 개로 삼각형을 만들기 위해서는 다음과 같은 조건을 만족해야 합니다. * 가장 긴 변의 길이는 다른 두 변의 길이의 합보다 작아야 합니다. * 삼각형의 두 변의 길이가 담긴 배열 sides이 매개변수로 주어집니다. * 나머지 한 변이 될 수 있는 정수의 개수를 return * * sides result * [1, 2] 1 두 변이 1, 2 인 경우 삼각형을 완성시키려면 나머지 한 변이 2 * [3, 6] 5 * 가장 긴 변이 6인 경우, 될 수 있는 나머지 한 변은 4, 5, 6 로 3개 * 나머지 한 변이 가장 긴 변인 경우, 될 수 있는 한 변은 7, 8 로 2개 * [11, 7] 13 * 가장 긴 변이 11인 경우, 나머지 한 변은 5, 6, 7, 8, 9,..
옹알이(1) /* 옹알이(1) * 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음을 * 최대 한 번씩 사용해 조합한(이어 붙인) 발음밖에 하지 못합니다. * 문자열 배열 babbling이 매개변수로 주어질 때, * 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return * * babbling result * ["aya", "yee", "u", "maa", "wyeoo"] 1 * ["ayaye", "uuuma", "ye", "yemawoo", "ayaa"] 3 */ 1234567891011121314151617181920212223242526272829303132public class programmer_0_1 { String[] speakingList = {"aya", "ye", "woo"..