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

[알고리즘] 최대 매출 with Java

포인터를 사용했다. 이게 될까? 했는데 되어서 너무 신기했다. 오늘 배운 것 1. 문제 풀이 . 로직도 강사님과 동일해서 기분이 좋았다. 이것을 sliding window라고 부르기로 했다고 한다. 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); } private static void ..

[알고리즘] 공통원소 구하기 with Java

이번문제 역시 포인터를 활용한 문제이다. 먼저 정렬을 해준다는 것이 차이점이었다. 오늘 배운 것 1. 문제 풀이 import java.util.ArrayList; import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner kb = new Scanner(System.in); int n = kb.nextInt(); int[] arr = new int[n]; for (int i = 0; i < n; i++) { arr[i] = kb.nextInt(); } int m = kb.nextInt(); int[] arr2 = new int[m]; for (int i..

[알고리즘] 배열 총 정리 with Java

string에 이어 배열 관련 문제까지 모두 끝마쳤다. 25%라고 하니 벌써 1/4를 푼 것이다. 뿌듯하기도 하면서 아직 기초를 다지는 시간인데 아직도 모르는 것이 있다고 생각하니 더 자극받고 더 잘하고 싶은 마음이 생겼다. 이번 알고리즘 풀이의 목적은 온전한 정리를 진행하며 내가 푼 문제들을 기록해나가며 완강하기인데, 지금까지는 효과가 매우 좋은 것 같다. 블로그 알고리즘 포스팅 글을 보며 내가 어떤 사소한(하지만 중요한) 것들을 배워나갔고, 적용은 잘 시키고 있는지 알 수 있었던 좋은 기회가 된 것 같다. 이번 주는 빠르게 3주 차 강의를 완강하는 것을 목표로 나아가고자 한다. 느리지만 정확하고, 제대로 나아가는 내가 될 것이다. 배운 것 정리 1. if, else if, else 에 대한 생각 . ..

[알고리즘] 멘토링 with Java, 4차원 배열에 대한 생각

이 문제도 풀지 못했다.. 3차원 배열까지밖에 생각하지 못했기 때문이다.. 이건 4차원 배열 문제이다. 오늘 배운 것 1. 4차원 배열에 대한 생각 . 기준이 2개이다. 기준 2개에 대해 2차원 배열을 순회하며 if문을 순회하는 로직임을 알게 되었다. 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 test = kb.nextInt(); int[][] arr = new int[test][n]; for (int i = 0; i < test; i++) { for (int j = 0;..

[알고리즘] 임시반장 정하기 with Java, 3차원 배열에 대한 생각

원래 목표했던 대로 저번주에 2차원 배열까지 끝내려고 했지만, 이 문제가 밟혀서 목표를 달성하지 못했다.. 이 문제는 나에게 3차원 배열이 무엇인지 가르쳐준 문제다. 오늘 배운 것 1. 3차원 배열에 대한 생각 . 기준이 2개이다. 기존 2차원 배열에서는 기준이 1개인 것에 대한 비교였지만, 이건 기준 2개를 놓고 변수가 움직이며 if문을 순회하는 로직임을 알게 되었다. 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+1][6]; for (i..

[알고리즘] 봉우리 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 = ..