알고리즘 117

[알고리즘] 암호 with Java, replace(), subString(a,b),parseInt(a,2)

문자열 마지막 문제. 여러 가지 꿀팁을 알게 된 것 같아 뿌듯하다. 까먹지 않게 자주자주 복습해주어야겠다. 오늘 배운 것 1. replace('#','1').replace('*','0') replace는 chain처럼 여러 번 사용 가능하다. String tmp = str.substring(0,7).replace('#', '1').replace('*', '0'); 2. 2진수를 10진수로 바꾸기 Integer.parseInt(i,2)를 사용하면 가능하다. 뒤쪽에는 몇 진수로 들어갔는지 입력해주면 된다. String tmp = '100'; int num = Integer.parseInt(tmp,2); System.out.println(num);// 4 3. subString(a, b) . subString..

[알고리즘] 문자열 압축 with Java, 문자열에 빈 문자 하나 더해주기

오늘은 주말이니까 string파트는 다 끝낸다는 마인드로 강의를 수강해야겠다. 오늘 배운 것 1. 문자열에 빈 문자 하나 더해주기 문자열 전체를 순회하고 싶을 때, 빈 문자열을 하나 더해주는 포인트를 배웠다. 2. 문제 풀이 import java.util.Scanner; public class Main { public static String solution(String str){ String answer = ""; str +=" "; char[] chars = str.toCharArray(); int cnt = 1; for (int i = 0; i < chars.length-1; i++) { if(chars[i] == chars[i+1]){ cnt++; }else{ answer+=chars[i]; if..

[알고리즘] 가장 짧은 문자거리 with Java, 거리 구하는 것에 대한 생각

오늘은 주말이니까 string파트는 다 끝낸다는 마인드로 강의를 수강해야겠다. 오늘 배운 것 1. 문자 간 거리를 구하는 방법 로직 앞으로 갔다 뒤로 갔다 한 번씩 해주면 된다. 방향 설정하는 게 중요하다. 앞으로 가면서 최소 거리를 설정하고, 다시 되돌아오면서 최소 거리를 비교하는 로직. 2. 문제 풀이 import java.util.Scanner; public class Main { public static int[] solution(String str,char c){ int [] answer = new int[str.length()]; char[] chars = str.toCharArray(); int p = str.length(); for (int i = 0; i < answer.length; i..

[알고리즘] 숫자만 추출 with Java, isDigit()

오늘은 주말이니까 string파트는 다 끝낸다는 마인드로 강의를 수강해야겠다. 오늘 배운 것 1. Character.isDigit(c) 숫자인지 판별해주는 메서드 System.out.println(Character.isDigit('8'));// true 2. ASCII 숫자 '0' ~ '9' : 48 ~ 57 3. 문제 풀이 import java.util.Scanner; public class Main { public static int solution(String str) { int answer = 0; char[] chars = str.toCharArray(); for (int i = 0; i =48 && chars[i]

[알고리즘] 유효한 팰린드롬 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..