반응형 SMALL 자바 알고리즘22 10. 가장 짧은 문자거리 # 풀이 import java.util.Scanner; public class Main { public int[] solution(String s, char t){ int[] answer = new int[s.length()]; // 왼쪽에 있는 t로부터의 거리 (처음부터 쭉) // 일단 p를 최대한 큰수로 초기화 int p = 1000; for(int i=0;i=0;i--){ if(s.charAt(i)==t) p=0; else { p++; if(p 2022. 7. 5. 09. 숫자만 추출 # 방법 1 : 아스키넘버 사용 - 문자 숫자 ‘0’ ~ ‘9’ 의 아스키넘버: 48~57 1. 문자열을 문자배열로 바꾼다. 2. 각 문자를 하나씩 검사하며, 문자숫자이면(즉, 아스키넘버가 48~57에 해당하면) 골라내서 연산한다. 3. answer = answer*10 + (x-48) 2022. 4. 11. 08. 팰린드롬 (replaceAll 정규식 이용) - replaceAll(정규식) 사용 - replaceAll(“[^A-Z]”, “”) => 대문자가 아닌 것들은 모두 빈문자(“”)로 바꾼다. import java.util.Scanner; public class Main { public String solution(String str){ String answer = "NO"; // 우선 모두 대문자로 바꾸고, 정규식 사용하여 특수문자 모두 제거(빈문자화) // 대문자가 아니면, 모두 ""으로 바꾸기 str = str.toUpperCase().replaceAll("[^A-Z]",""); // 바뀐 문자열 모두 뒤집어보고, 원본과 비교 String tmp = new StringBuilder(str).reverse().toString(); if(str.equ.. 2022. 4. 11. 07. 회문 문자열 # 방법 1 1. String tmp = StringBuilder(문자열).reverse().toString() 을 이용하여 문자열을 완전히 뒤집는다. 2. str.equalsIgnoreCase(tmp) => 대소문자 구분 없는 equals 를 이용하여 원본 문자열과 뒤집은 문자열을 비교한다. (그냥 toUpperCase() 나 toLowerCase()를 이용하여 모두 대문자/소문자로 만들어도 OK) 3. 비교한 결과 같으면 YES, 다르면 NO를 출력한다. import java.util.Scanner; public class Main { public String solution(String str){ String answer = "YES"; // 일단 모두 대문자로 만들어주기 str = str.toUp.. 2022. 4. 8. 이전 1 2 3 4 5 6 다음 반응형 LIST