알고리즘 117

[알고리즘] 최대 길이 연속 부분수열 with Java

오늘 배운 것 1. 문제 풀이 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner kb = new Scanner(System.in); int n = kb.nextInt(); int k = kb.nextInt(); int [] arr = new int[n]; for (int i = 0; i < arr.length; i++) { arr[i] = kb.nextInt(); } solution(k,arr); } private static void solution(int k, int[] arr) { int lt=0,answer=-1; int cnt=0; // 0을 1로 바꾼 횟수 for (int i..

[알고리즘] 학급 회장 with Java, getOrDefault

오늘 배운 것 1. getOrDefault . 0으로 초기화해줄 수 있는 동시에 먼저 있으면 그 값을 활용할 수 있도록 돕는 아주 좋은 함수이다. 2. 문제 풀이 import java.util.HashMap; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner kb = new Scanner(System.in); int n=kb.nextInt(); String str=kb.next(); System.out.println(solution(n, str)); } public static char solution(int n, String s){ char answer=' '; HashMap map=..

알고리즘/해시 2022.03.14

[알고리즘] 연속된 자연수의 합 with Java

오늘 배운 것 1. 로직 . 어제 배웠던 포인터 문제랑 유사하다는 것을 알게 됨. for문을 작성하는 방법 및 로직 흐름에 대해 배웠다. 2. 코드 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner kb = new Scanner(System.in); int n = kb.nextInt(); solution(n); } private static void solution(int n) { int [] arr = new int[n]; for (int i = 1; i < arr.length; i++) { arr[i] = i; } int lt=1,tmp_sum=0,answer=0; for (int ..

[알고리즘] 연속 부분수열 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. 문제 풀이 . 로직도 강사님과 동일해서 기분이 좋았다. 이것을 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)..