문자열 11

[알고리즘] 연속 부분수열 with Java

오늘 배운 것 1. 느낀점 . 알고리즘 풀기가 점점 부담스러워졌다.. 역시 어려운 것이 나와서 그런가. 개념은 어렵지 않은데 구현력이 떨어지는 것을 느낀다. while문을 이용해서 계속 빼주는 것을 배웠다. 2. 문제 풀이 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner kb = new Scanner(System.in); int n = kb.nextInt(); int m = kb.nextInt(); int[] arr = new int [n]; for (int i = 0; i < n; i++) { arr[i] = kb.nextInt(); } solution(m,arr); } privat..

[알고리즘] 봉우리 with Java

주말맞이 알고리즘! 오늘은 결혼식 다녀와서 호다닥 오늘 일정 마무리 지어야겠다. 오늘 배운 것 1. 문제 풀이 . 딱히 알고리즘이라는 과정은 없었다. 그냥 논리적으로 생각해서 풀면 끝나는 문제였다. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner kb = new Scanner(System.in); int i = kb.nextInt(); int [][] arr = new int[i+2][i+2]; for (int j = 1; j < i+1; j++) { for (int k = 1; k < i+1; k++) { arr[j][k] = kb.nextInt(); } } solution(arr)..

[알고리즘] 격자판 최대합 with Java, 이중 for문

오늘 배운 것 1. 문제 풀이 import java.util.ArrayList; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner kb = new Scanner(System.in); int i = kb.nextInt(); int[][] arr = new int[i][i]; for (int j = 0; j < arr.length; j++) { for (int k = 0; k < arr.length; k++) { arr[j][k] = kb.nextInt(); } } solution(i,arr); } private static void solution(int i, int[][] arr) { ..

[알고리즘] 등수구하기 with Java, 이중 for문

오늘 배운 것 1. 이중 for문 . for문을 순회할 때, 요소 하나를 기준으로 다른 배열요소들과의 관계성을 탐색하고싶을 때 사용하는 것 같다. 2. 문제 풀이 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner kb = new Scanner(System.in); int i = kb.nextInt(); int[] arr = new int[i]; for (int j = 0; j < arr.length; j++) { arr[j] = kb.nextInt(); } solution(i,arr); } private static void solution(int i, int[] arr) { int[]..

[알고리즘] 점수계산 with Java

주말 알고리즘 공부쓰~ 오늘 배운 것 1. 문제 풀이 . 배열 0번째는 미리 계산해두고, 1번째부터 돌면서 하나 이전꺼 + 1해주는 로직을 구상하고 코드를 짯다. . 강의에서는 배열 자체도 잘 안쓰는 것 같다. import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner kb = new Scanner(System.in); int i = kb.nextInt(); int[] arr = new int[i]; for (int j = 0; j < arr.length; j++) { arr[j] = kb.nextInt(); } solution(i,arr); } private static void solutio..

[알고리즘] 뒤집은 소수 with Java, 숫자뒤집기에 대한 생각

주말 맞이 알고리즘~ 정리하면서 푸니까 좀 더 수월한 느낌이다. 오늘 배운 것 1. 숫자 뒤집기 . 나는 stringbuilder 변환 후 reverse() 함수를 사용했다. . 강의에서는 %, /를 이용했다. int i1 = Integer.parseInt(arr[j]); int res = 0; while(i1>0){ int t = i1%10; res = (res*10) + t; i1 = i1/10; } 2. 문제 풀이 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner kb = new Scanner(System.in); int i = kb.nextInt(); String[] arr = ..

[알고리즘] 문자열 총 정리 with Java

문자열 편을 다 보고 나서 나름대로 정리를 해보았다. 자고로,, 공부란 끊임없는 기억의 재조합과 반복이라고 생각한다. 이를 위해 계속해서 복습해서 내 것으로 만들어야겠다는 생각을 했다. 문자열 알고리즘을 배우면서 나름 유효했던 배움들을 기록하고 정리해보았다. 배운 것 정리 1. Scanner . 값을 주로 읽기 위해 사용하는 객체 . next() : 한 문자열 읽기 가능 . nextLine() : 한 줄 읽기 가능 . nextInt() : 한 정수 읽기 가능 . next().charAt(0) : 한 문자 읽기 가능 // 사용법 Scanner sc = new Scanner(System.in); 2. s.{ toUpperCase(), toLowerCase() } . 문자열을 대문자로 바꾸기 위해 사용 Str..

[알고리즘] 암호 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..