하지의 코딩일지/JAVA TEST9 요세푸스 문제 1번부터 N번까지의 사람이 동그랗게 모여서 앉아있습니다. 1번부터 순서를 세어 K 번째 사람을 모임에서 제외시킵니다. 남은 N-1명에서 이번에 제외된 다음 사람부터 원을 따라 다시 순서를 세서 K번째 사람을 모임에서 제외하는 과정을 마지막 사람이 남을 때까지 반복합니다. 이때 마지막으로 남는 사람의 번호를 구하는 프로그램을 구현하세요 class Solution { public int solution(int N, int K) { // 마지막으로 남은 사람의 번호를 구하는 함수 호출 return josephus(N, K); } // 재귀적인 방법으로 요세푸스 문제를 해결하는 함수 private int josephus(int n, int k) { if (n == 1) { return 1; // 마지막으로 남은.. 2023. 7. 30. XOR를 이용한 이진수 뒤집기 두 정수 A와 B를 이진수로 표현했을 때, A를 B로 바꾸기 위해 뒤집어야 하는 비트의 개수를 구하는 문제를 해결하기 위해서는 XOR 연산을 활용할 수 있습니다. XOR 연산은 두 비트가 다를 때 1을 반환하고, 같을 때 0을 반환합니다. 두 정수 A와 B를 XOR 연산한 결과를 이진수로 표현하면, A와 B의 이진수 표현에서 서로 다른 비트들이 1로 표시됩니다. 그리고 이 1의 개수가 A를 B로 바꾸기 위해 뒤집어야 하는 비트의 개수가 됩니다 class Solution { public int solution(int A, int B) { int xorResult = A ^ B; int count = 0; // XOR 결과에서 1의 개수를 세기 while (xorResult > 0) { if ((xorRes.. 2023. 7. 30. 계산 순서에 따라 계산하기 테스트 사칙연산 기호에 맞춰 계산하는 테스트 import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; import javax.script.ScriptException; class Solution { public double solution(String s) { ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByName("JavaScript"); try { Object result = engine.eval(s); double doubleResult = Double.parseDouble(result.toString(.. 2023. 7. 30. 자바 후보자 투표 가상시뮬레이션 테스트 import java.util.Random; import java.util.Scanner; public class JavaStudy06 { // 총 투표수 10,000건 public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("총 진행할 투표수를 입력해 주세요:"); int total = sc.nextInt(); System.out.print("가상 선거를 진행할 후보자 인원을 입력해주세요:"); int candidatenum = sc.nextInt(); System.out.print("1번째 후보자이름을 입력해 주세요:"); String firstcd = sc.next(); System.o.. 2023. 7. 8. 달력 생성기 (테스트) // // Source code recreated from a .class file by IntelliJ IDEA // (powered by FernFlower decompiler) // import java.time.LocalDate; import java.util.Scanner; public class JavaStudy05 { public JavaStudy05() { } public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("년도를 입력하세요 : "); int year = sc.nextInt(); System.out.print("월을 입력하세요 : "); int month = sc.ne.. 2023. 7. 7. 놀이공원 입장권 계산(테스트) import java.util.Scanner; public class JavaStudy03 { public static void main(String[] args) { System.out.println("[입장권 계산]"); Scanner sc = new Scanner(System.in); System.out.print("나이를 입력해 주세요.(숫자) : "); int age = sc.nextInt(); System.out.print("입장시간을 입력해 주세요.(숫자입력) : "); int time = sc.nextInt(); System.out.print("국가유공자 여부를 입력해주세요.(y/n) : "); char national = sc.next().charAt(0); System.out.print.. 2023. 7. 7. 이전 1 2 다음 728x90