소문자로 된 한개의 문자열이 입력되면 중복된 문자를 제거하는 알고리즘 문제 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str = sc.next(); String answer = ""; for(int i = 0; i < str.length(); i++){ if (str.indexOf(str.charAt(i)) == i) answer+= str.charAt(i); } System.out.println(answer); } } import java.util.Scanner; public class Main { public S..
설명 A, B 두 사람이 가위바위보 게임을 합니다. 총 N번의 게임을 하여 A가 이기면 A를 출력하고, B가 이기면 B를 출력합니다. 비길 경우에는 D를 출력합니다. 가위, 바위, 보의 정보는 1:가위, 2:바위, 3:보로 정하겠습니다. 예를 들어 N=5이면 두 사람의 각 회의 가위, 바위, 보 정보가 주어지면 각 회를 누가 이겼는지 출력하는 프로그램을 작성하세요. 입력 첫 번째 줄에 게임 횟수인 자연수 N(1
선생님이 N명의 학생을 일렬로 세웠습니다. 일렬로 서 있는 학생의 키가 앞에서부터 순서대로 주어질 때, 맨 앞에 서 있는 선생님이 볼 수 있는 학생의 수를 구하는 프로그램을 작성하세요. import java.util.ArrayList; import java.util.Scanner; public class Main { public int solution(int n, int[] arr) { int answer = 1, max = arr[0]; for (int i = 1; i max){ max = arr[i]; answer++; } } return answer; } public static void main(String[] args) { Main T = new Main(); Scanner sc = new Sc..
N개의 정수를 입력받아, 자신의 바로 앞 수보다 큰 수만 출력하는 알고리즘 문제 import java.util.ArrayList; import java.util.Scanner; public class Main { public ArrayList solution(int n, int[] arr) { ArrayList answer = new ArrayList(); // 0번째는 무조건 출력 answer.add(arr[0]); // 배열 비교하고 대입하기 for (int i = 1; i arr[i-1]) answer.add(arr[i]); } return answer; } public static void main(String[] args) { Main T = new Ma..
암호는 알파벳 한 문자마다 # 또는 *이 일곱 개로 구성되어 있습니다. #은 이진수의 1로, *이진수의 0으로 변환합니다 그리고 바뀐 2진수를 10진수화 합니다. 그 다음 10진수화 한것을 아스키 번호로 변환하는 알고리즘 문제입니다. import java.util.Scanner; public class Main { public String solution(int n, String s) { String answer = ""; for (int i = 0; i < n; i++) { // 0번째부터 6번째까지 자르고 변환합니다. String tmp = s.substring(0,7).replace('#','1').replace('*','0'); // 2진수를 10진수로 변환합니다. int num = Integer..
알파벳 대문자로 이루어진 문자열을 입력받아 같은 문자가 연속으로 반복되는 경우 반복되는 문자 바로 오른쪽에 반복 횟수를 표기하는 방법으로 문자열을 압축하는 알고리즘 문제 (반복횟수가 1인 경우 생략) import java.util.Scanner; public class Main { public String solution(String s) { String answer = ""; int cnt = 1; // 맨뒤에 빈문자를 넣어야 마지막 문자가 대입가능 s = s + " "; // 빈문자를 대입하였기 때문에 빈문자 전까지 for문이 돌게 해야함 for (int i = 0; i < s.length() - 1; i++) { if (s.charAt(i) == s.charAt(i + 1)) cnt++; else ..
한 개의 문자열 a와 문자 b가 주어지면 문자열 a의 각 문자가 문자 b와 떨어진 최소거리를 출력하는 알고리즘 문제 import java.util.Scanner; public class Main { public int[] solution(String s, char c) { int[] answer = new int[s.length()]; int num = 1000; for (int i = 0; i =0; i--){ if (s.charAt(i) == c){ num = 0; } ..