알고리즘/문자열, 정렬 38

[알고리즘] 유효한 팰린드롬 with Java, 정규식, replaceAll()

2시쯤 되니까 집중력이 많이 떨어진다.. 많이 해보려해도 이제 체력이 안되는 것인가ㅠㅠ 오늘 배운 것 1. 정규식 ^ : not [^A-Z] : a부터 z까지 알파벳이 아닌 것 str.replaceAll("[^A-Z]","") 2. replaceAll(a,b) 전부 교체하는 함수인듯 3. 문제풀이 import java.util.Scanner; public class Main { public static String solution(String str) { String answer = "YES"; char[] chars = str.toCharArray(); String tmp = ""; for (int i = 0; i < chars.length; i++) { if (Character.isAlphabetic..

[알고리즘] 회문 문자열 with Java, equalsIgnoreCase()

회문 문자열을 구현해보고자 한다. 대소문자를 구분하지 않는 equals가 있다는 사실이 조금 신기했다. 오늘 배운 것 1. 문자열 반까지만 for문 돌기 i < len/2 i len-1-i 2. equalsIgnoreCase() 이 함수는 대소문자 구분 없이 판별해준다. System.out.println("t".equalsIgnoreCase("T"));// true 3. 문제 풀이 import java.util.Scanner; public class Main { public static String solution(String str) { String answer = "YES"; str = str.toUpperCase(); for (int i = 0; i < str.length()/2; i++) { if..

[알고리즘] 중복문자 제거 with Java, indexOf(s.charAt(c))

오늘 배운 것 1. 중복 문자열 판별하기 문자열 리스트 중 한 문자의 위치 == for문의 인덱스 i인 경우 해당 문자열이 첫번째로 나온 것임을 확인할 수 있다. 예를들어 test라는 문자열이 존재할 때, 아래의 표와 같이 마지막 T는 번호가 같지 않음을 확인할 수 있다. 이것은 중복 문자열이라고 하고 추가하지 않아야 한다. 2. 문제 풀이 import java.util.Scanner; public class Main { public static String solution(String str) { String answer = ""; for (int i = 0; i < str.length(); i++) { if(str.indexOf(str.charAt(i)) == i){ answer += str.char..

[알고리즘] 특정 문자 뒤집기 with Java, isAlphabetic()

알고리즘 3일차 공부..! 오늘은 12시에 야간 작업이 있어서 야간작업을 준비하면서 알고리즘 공부를 진행했다. 오늘 배운 것 1. Character.isAlphabetic(c) python의 isAlpha처럼 유사한 기능을 가진 java기능이 많다는 것을 알게 되었다.. 신기ㅋㅋㅋ System.out.println(Character.isAlphabetic('c'));// true 2. 문제 풀이 두가지 방법으로 풀었다. 자바는 뭔가 코드가 되게 길다는 것을 느낀 하루였다. import java.util.Scanner; public class Main { public static String solution(String str) { String answer = ""; int lt=0,rt=str.lengt..

[알고리즘] 단어 뒤집기 with Java, nextInt(), Stringbuilder(),valueOf()

전날 9시 정도에 일찍 잠들었기 때문에 일찍 일어나게 되어 알고리즘 강의를 들었다 ! 오늘도 두강의 정도 들었는데, 풀컨디션으로는 2강의정도가 맥스인 것 같다... 집즁력 한계,, 오늘 배운 것 1. nextInt() int를 받을 수 있다. 사용법은 아래와 같다. Scanner kb = new Scanner(System.in); int i = kb.nextInt(); 2. String vs StringBuilder String은 불변객체이기 때문에 문자열을 새로 할당받을 때마다 새로운 객체를 생성한다는 특징이 있다. StringBuilder는 가변객체이기 때문에 문자열을 더했다 뺏다하는 연산이 필요할 때 사용한다. // StringBuilder 사용하기 String str = "test"; String..

[알고리즘] 문장 속 단어 with Java, nextLine(), indexOf(),subString()

알고리즘 공부 2일차 ! 오늘도 화이팅 해보자. 오늘 배운 것 1. nextLine() next()가 문자열을 읽는 것(띄어쓰기 전까지) 이라면, nextLine()은 한줄을 그대로 읽는 것이다. // test = "it is time to study"; System.out.println(test.next());// it System.out.println(test.nextLine());// it is time to study 2. indexOf(char c) param으로 주어진 문자의 첫번째 인덱스를 반환한다. 없다면 -1을 반환해준다. String test = "it is time to study"; System.out.println(test.indexOf('i'));// 0 System.out.pr..

[알고리즘] 대소문자 변환 with Java, isUpperCase(), ASCII

열의가 넘치다보니(첫날이다보니) 하루에 두강의를 들어버렸다.. ! 이번 내용은 어떤 내용일까? 오늘 배운 것 1. ASCII 아스키 코드는 대충알고있고 숫자를 외우기 귀찮아서 외우지 않고 있었는데 정리하면서 확실하게 외워두었다. 대문자(A-Z) : 65 - 90 소문자(a-z) : 97 - 122 2. char는 부등호랑 같이 쓰면 int 로 형변환이 자동으로 된다. System.out.println('A'==65); 3. Character 객체에는 isLowerCase(x), toUpperCase(x) 등등 다양한 메서드들이 존재한다. // 오늘 배운 네가지 메서드 char c = 'c'; Character.isLowerCase(c); Character.isUpperCase(c); Character.t..

[알고리즘] 문자 찾기 with Java, Scanner, charAt, toUpperCase(), toCharArray()

자바 기반으로 알고리즘 공부를 새롭게 시작해보자 ! 오늘 배운 것 1. Scanner 객체는 next() 함수가 있는데, 한 줄 읽어올 수 있다. // 한줄 읽어오는 예시 Scanner kb = new Scanner(System.in); String test = kb.next(); 2. next().charAt(0)은 읽어온 문자열 중 한 글자를 읽을 수 있다. 응용 가능하다. // 한줄 읽어온 후, 한글자만 읽어오기 Scanner kb = new Scanner(System.in); char c = kb.next().charAt(0); 3. toUpperCase() 함수를 사용해서 문자열 전체를 대문자로 만들 수 있다. // 한줄 읽어온 후 대문자로 변경하기 Scanner kb = new Scanner(..