알고리즘 (98)

설명 N개의 자연수가 입력되면 각 자연수를 뒤집은 후 그 뒤집은 수가 소수이면 그 소수를 출력하는 프로그램을 작성하세요. 예를 들어 32를 뒤집으면 23이고, 23은 소수이다. 그러면 23을 출력한다. 단 910를 뒤집으면 19로 숫자화 해야 한다. 예시 입력 1 9 32 55 62 20 250 370 200 30 100 예시 출력 1 23 2 73 2 3 풀이 import java.util.*; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int size =in.nextInt(); String[] arr = new String[size]; // 입력받은 수를 저장 for( ..


설명 A, B 두 사람이 가위바위보 게임을 합니다. 총 N번의 게임을 하여 A가 이기면 A를 출력하고, B가 이기면 B를 출력합니다. 비길 경우에는 D를 출력합니다. 가위, 바위, 보의 정보는 1:가위, 2:바위, 3:보로 정하겠습니다. 예를 들어 N=5이면 두 사람의 각 회의 가위, 바위, 보 정보가 주어지면 각 회를 누가 이겼는지 출력하는 프로그램을 작성하세요. 출력 각 줄에 각 회의 승자를 출력합니다. 비겼을 경우는 D를 출력합니다. 예시 입력 1 5 2 3 3 1 3 1 1 2 2 3 예시 출력 1 A B A B D 풀이 import java.util.*; public class Main { public static void main(String[] args) { Scanner in = new S..

설명 선생님이 N명의 학생을 일렬로 세웠습니다. 일렬로 서 있는 학생의 키가 앞에서부터 순서대로 주어질 때, 맨 앞에 서 있는 선생님이 볼 수 있는 학생의 수를 구하는 프로그램을 작성하세요. (앞에 서 있는 사람들보다 크면 보이고, 작거나 같으면 보이지 않습니다.) 예시 입력 1 8 130 135 148 140 145 150 150 153 예시 출력 1 5 풀이 import java.util.*; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int size = Integer.parseInt(in.nextLine()); int[] arr = new int[size]; for(i..

설명 N개의 정수를 입력받아, 자신의 바로 앞 수보다 큰 수만 출력하는 프로그램을 작성하세요. (첫 번째 수는 무조건 출력한다) 예시 입력 1 6 7 3 9 5 6 12 예시 출력 1 7 9 6 12 풀이 import java.util.*; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); //이 풀이에서는 사용하지 않음 int size = Integer.parseInt(in.nextLine()); String[] arr = in.nextLine().split(" "); List list = new ArrayList(); int max = Integer.MIN_VALUE; for(..

설명 현수는 영희에게 알파벳 대문자로 구성된 비밀편지를 매일 컴퓨터를 이용해 보냅니다. 비밀편지는 현수와 영희가 서로 약속한 암호로 구성되어 있습니다. 비밀편지는 알파벳 한 문자마다 # 또는 *이 일곱 개로 구성되어 있습니다. 만약 현수가 “#*****#”으로 구성된 문자를 보냈다면 영희는 현수와 약속한 규칙대로 다음과 같이 해석합니다. 1. “#*****#”를 일곱자리의 이진수로 바꿉니다. #은 이진수의 1로, *이진수의 0으로 변환합니다. 결과는 “1000001”로 변환됩니다. 2. 바뀐 2진수를 10진수화 합니다. “1000001”을 10진수화 하면 65가 됩니다. 3. 아스키 번호가 65문자로 변환합니다. 즉 아스크번호 65는 대문자 'A'입니다. 참고로 대문자들의 아스키 번호는 'A'는 65번,..

설명 알파벳 대문자로 이루어진 문자열을 입력받아 같은 문자가 연속으로 반복되는 경우 반복되는 문자 바로 오른쪽에 반복 횟수를 표기하는 방법으로 문자열을 압축하는 프로그램을 작성하시오. 단 반복횟수가 1인 경우 생략합니다. 예시 입력 1 KKHSSSSSSSE 예시 출력 1 K2HS7E 풀이 import java.util.*; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); // 마지막 문자가 저장 될수 있도록 문자열 빈킨 하나를 더준다. String input = in.next() + " "; String answer = ""; int count = 1; char tmp = ' '..

설명 한 개의 문자열 s와 문자 t가 주어지면 문자열 s의 각 문자가 문자 t와 떨어진 최소거리를 출력하는 프로그램을 작성하세요. 풀이 import java.util.*; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); String input = in.next(); char input2 = in.next().charAt(0); int[] answer = new int[input.length()]; char[] arr = input.toCharArray(); int max = 1000; //왼쪽에서부터 INPUT2와의 거리 for (int i=0; i=0; i--) { if(arr..

설명 문자와 숫자가 섞여있는 문자열이 주어지면 그 중 숫자만 추출하여 그 순서대로 자연수를 만듭니다. 만약 “tge0a1h205er”에서 숫자만 추출하면 0, 1, 2, 0, 5이고 이것을 자연수를 만들면 1205이 됩니다. 풀이 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); String input = in.nextLine().toLowerCase(); // 숫자가 아니면 빈칸으로 input = input.replaceAll("[^0-9]", ""); // 인트로 변환 int result = Integer.parseInt(input); System.out.println(resu..