Algorithm
(Elice / DP / C++) 병정들의 369 게임
병정들의 369 게임 카드 병정들은 쉬는 시간에 휴게실에 둘러앉아 369 게임을 즐기곤 합니다. 369 게임은 다음과 같은 규칙을 가지고 있습니다. 병정들이 양의 정수 A에서 시작하여 차례대로 돌아가면서 숫자를 하나씩 증가하면서 불러나갑니다. 단, 부르는 숫자가 3의 배수이거나 그 숫자에 3, 6, 9가 하나라도 들어 있는 경우에 숫자는 부르지 않고 손뼉을 칩니다. 예를 들어, 369 게임을 17부터 시작하는 경우에 박수를 X로 표현한다면, 이 게임의 진행은 17-X-X-20-X-22-X-X-25–X–X-28-X-X …와 같습니다. 시작하는 양의 정수 A와 끝나는 양의 정수 B가 주어졌을 때, 손뼉을 치는 총 횟수를 구하는 프로그램을 작성하세요. 지시사항 입력 한 줄에 시작하는 양의 정수 A와 끝나는 양..
(Elice / 그래프 / Java) 마피아는 몇 명?
마피아는 몇 명? 카드 병정들은 점심시간에 마피아 게임을 즐겨합니다. 마피아 게임이란 참가자의 일부는 마피아가 되고 나머지 참가자들은 시민이 되어 누가 마피아인지 알아내면 되는 게임입니다. 마피아들끼리는 서로 마피아임을 알고 있으며 정체를 들키지 않기 위해 연기를 해야 합니다. 게임이 진행되면서 현재 N명의 참가자가 살아있다고 합니다. 참가자들은 짐작을 통해 마피아를 지목하여 누가 마피아인지 밝혀내야 합니다. 또한 마피아끼리는 서로 마피아임을 알기 때문에 서로 지목하지 않는다고 합니다. 누가 마피아인지 모를 때, 이들 중 최대 몇 명의 마피아가 있을 수 있는지 구하는 프로그램을 작성하세요. 지시사항 입력 첫째 줄에는 현재 살아있는 카드 병정의 수를 나타내는 정수 N을 입력합니다 참가자들은 1에서 N까지의..
(Elice / 문자열 / Java) 타이핑
타이핑 엘리스 토끼는 타이핑 과제를 하고 있습니다. 엘리스 토끼는 문득 궁금증이 생겼습니다. 타이핑 과제를 하면서 가장 많이 눌리는 알파벳 자판이 무엇일까 하는 것입니다. 엘리스 토끼가 타이핑하는 과제를 줬을 때 가장 많이 눌리는 알파벳 자판을 출력하는 프로그램을 작성하세요. 지시사항 입력 첫 번째 줄에 엘리스 토끼의 과제를 입력합니다. 과제는 공백, 알파벳 소문자, 줄 바꿈으로 이루어져 있으며 400자를 넘지 않습니다. ※ 과제에는 1개 이상의 소문자 알파벳이 포함됩니다. 출력 가장 많이 눌리는 알파벳 자판을 출력합니다. ※가장 많이 눌리는 알파벳의 개수가 여러 개인 경우 사전 순으로 공백없이 출력합니다. 입력 예시 ellice 출력 예시 el 소스코드 import java.util.Scanner; c..
JavaFestival37 문제풀이
[가운데 글자 구하기] getMiddle메소드는 하나의 단어를 입력 받습니다. 단어를 입력 받아서 가운데 글자를 반환하도록 getMiddle메소드를 만들어 보세요. 단어의 길이가 짝수일경우 가운데 두글자를 반환하면 됩니다. 예를들어 입력받은 단어가 power이라면 w를 반환하면 되고, 입력받은 단어가 test라면 es를 반환하면 됩니다. import java.io.*; import java.util.Scanner; public class Main { public static void main(String args[]) { System.out.println(getMiddle("power")); } public static String getMiddle(String a) { String[] b = new S..
JavaFestival36 문제풀이
두 개의 정수를 매개변수로 받아 앞의 정수가 뒤의 정수로 나누어지는지를 판별하는 메소드 isDivide( ) 를 작성하세요. 이때, 나누어지면 true, 나누어지지 않으면 false을 반환함. import java.io.*; import java.util.Scanner; public class Main { public static void main(String args[]) { int num1 = 10; int num2 = 2; boolean result = isDivide(num1, num2); System.out.println("결과 확인 : " + result); } public static boolean isDivide(int num1, int num2) { if((double)num1/num2 ..
JavaFestival35 문제풀이
2개의 정수 base, n을 받아 base의 n제곱 만큼 값을 반환하는 powerN() 메소드를 작성하세요. import java.io.*; import java.util.Scanner; public class Main { public static void main(String args[]) { int base = 2; int n = 3; int result = powerN(base, n); System.out.println("결과 확인 : " + result); } public static int powerN(int base, int n) { int sum = 1; for(int i = 0;i 8을 반환 powerN(3,3) -> 27을 반환 powerN(10,2) -> 100을 반환