본문 바로가기

알고리즘(Java)/String12

[알고리즘]String(문자열) 12. 암호 - #과 *로 구성된 암호를 알파벳 대문자로 해석하기 12. 암호 A가 B에게 보낸 신호를 해석해주는 프로그램 비밀편지는 알파벳 한 문자마다 # 또는 *이 일곱 개로 구성되어 있습니다. 1. #은 이진수의 1로, *은 이진수의 0으로 변환합니다. 2. 바뀐 2진수를 10진수화 합니다. “1000001”을 10진수화 하면 65가 됩니다. 3. 문자로 변환합니다. 즉 아스키 번호 65는 대문자 'A'입니다. // 대문자들의 아스키 번호는 'A'는 65번, ‘B'는 66번, ’C'는 67번 등 차례대로 1씩 증가하여 ‘Z'는 90번 입력) 첫 줄에는 보낸 문자의 개수(10을 넘지 않음)가 입력됩니다. 다음 줄에는 문자 개수의 일곱 배 만큼의 #또는 *문자가 입력됩니다. 출력) B가 해석한 문자열을 출력합니다. 1. import java.util.Scanner; .. 2021. 7. 18.
[알고리즘]String(문자열) 11. 문자열 압축 - 알파벳 대문자로 이루어진 문자열을 입력받아 같은 문자가 연속으로 반복되는 경우, 반복되는문자 바로 오른쪽에 반복 횟수를 표기하는 방법으로 .. 11. 문자열 압축 알파벳 대문자로 이루어진 문자열을 입력받아 같은 문자가 연속으로 반복되는 경우 반복되는 문자 바로 오른쪽에 반복 횟수를 표기하는 방법으로 문자열을 압축하는 프로그램 입력) 첫 줄에 문자열이 주어집니다. 출력) 첫 줄에 압축된 문자열을 출력합니다. 1. import java.util.Scanner; public class Main { public static String solution(String str) { String answer = ""; str = str + " "; // 문자열 끝에 빈 문자 추가 int cnt = 1; for (int i=0; i1) answer += String.valueOf(cnt); // Integer.toString(cnt)로 해도 됨 cnt = 1;.. 2021. 7. 18.
[알고리즘]String(문자열) 10. 가장 짧은 문자 거리 - 한 개의 문자열 s와 문자 t가 주어지면 문자열 s의 각 문자가 문자 t와 떨어진 최소거리를 구하기 10. 가장 짧은 문자 거리 한 개의 문자열 s와 문자 t가 주어지면 문자열 s의 각 문자가 문자 t와 떨어진 최소거리를 출력하는 프로그램 입력) 첫 번째 줄에 문자열 s와 문자 t가 주어집니다. 출력) 첫 번째 줄에 각 문자열 s의 각 문자가 문자 t와 떨어진 거리를 순서대로 출력합니다. Math.min() 사용 import java.util.Scanner; public class Main { public static int[] solution(String str, char c) { int[] answer = new int[str.length()]; // 배열 동적 할당 int p = 1000; // 왼쪽부터 for (int i=0; i=0; i--) { if (str.charAt(i)==c) p = .. 2021. 7. 18.
[알고리즘]String(문자열) 9. 숫자만 추출 - 문자와 숫자가 섞여있는 문자열이 주어지면 그 중 숫자만 추출해 자연수 만들기 9. 숫자만 추출 문자와 숫자가 섞여있는 문자열이 주어지면 그 중 숫자만 추출하여 그 순서대로 자연수를 만드는 프로그램 입력) 첫 줄에 숫자가 섞인 문자열이 주어집니다. 문자열의 길이는 100을 넘지 않습니다. 출력) 첫 줄에 자연수를 출력합니다. 1. 아스키 코드 이용 import java.util.Scanner; public class Main { public static int solution(String str) { int answer = 0; for(char x : str.toCharArray()) { // 0~9의 아스키코드값 : 48~57 if (x>=48 && x 2021. 7. 17.
[알고리즘]String(문자열) 8. 유효한 팰린드롬(Palindrome) - 해당 문자열이 팰린드롬이면 "YES", 아니면 “NO"를 출력하기(알파벳 이외의 문자들 무시) 8. 유효한 팰린드롬 문자열이 입력되면 해당 문자열이 팰린드롬이면 "YES", 아니면 “NO"를 출력하는 프로그램 알파벳만 가지고 회문을 검사하며, 대소문자를 구분하지 않습니다. 알파벳 이외의 문자들은 무시합니다. 입력) 첫 줄에 길이 100을 넘지 않는 공백이 없는 문자열이 주어집니다. 출력) 첫 번째 줄에 팰린드롬인지의 결과를 YES 또는 NO로 출력합니다. 1. replaceAll() 이용 import java.util.Scanner; public class Main { private static String solution(String str) { String answer = "NO"; str = str.toUpperCase().replaceAll("[^A-Z]", ""); // 대문자가 아닌 것.. 2021. 7. 17.
[알고리즘]String(문자열) 7. 회문 문자열(Palindrome) - 문자열이 회문 문자열이면 "YES", 아니면 “NO"를 출력하기 7. 회문 문자열 문자열이 입력되면 해당 문자열이 회문 문자열이면 "YES", 회문 문자열이 아니면 “NO"를 출력하는 프로그램 // 회문 문자열 : 앞에서 읽을 때나 뒤에서 읽을 때나 같은 문자열 회문을 검사할 때 대소문자를 구분하지 않습니다. 입력) 첫 줄에 길이 100을 넘지 않는 공백이 없는 문자열이 주어집니다. 출력) 첫 번째 줄에 회문 문자열인지의 결과를 YES 또는 NO로 출력합니다. 1. charAt()으로 비교 import java.util.Scanner; public class Main { private static String solution(String str) { String answer = "YES"; str = str.toUpperCase(); // 대문자로 int len = .. 2021. 7. 17.