분류 전체보기 290

[알고리즘] 모든 아나그램 찾기 with Java

O(N)으로 풀려했지만 도저히 풀 수 없어서 O(N^2)로 풀어본 문제. 정답은 맞았는데 과연,, 해설도 동일할까? 궁금 오늘 배운 것 1. equals . hashmap도 equals가 적용된다. 2. 문제 풀이 . 하나씩 올라가고, 하나씩 빼주는 방식으로 진행된다. import java.util.HashMap; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner kb = new Scanner(System.in); String s1 = kb.next(); String s2 = kb.next(); solution(s1, s2); } private static void solution(St..

알고리즘/해시 2022.03.16

[알고리즘] 매출액의 종류 with Java

슬라이딩 윈도우, 투포인트 알고리즘 등이 콜라보 된 멋진 작품이다. 오늘 배운 것 1. 문제 풀이 . 하나씩 올라가고, 하나씩 빼주는 방식으로 진행된다. import java.util.ArrayList; 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(); int k = kb.nextInt(); int [] arr = new int[n]; for (int i = 0; i < arr.length; i++) { arr[i] = kb.nextInt(); } s..

알고리즘/해시 2022.03.16

[알고리즘] 아나그램 with Java, containsKey(c)

오늘 배운 것 1. containsKey(c), containsValue(c) . 키나 값이 존재하는지 여부를 확인한다. 2. 문제 풀이 import java.util.HashMap; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner kb = new Scanner(System.in); String s1 = kb.next(); String s2 = kb.next(); solution(s1,s2); } private static void solution(String s1, String s2) { HashMap hashMap = new HashMap(); for (char c : s1.toC..

알고리즘/해시 2022.03.15

[알고리즘] 최대 길이 연속 부분수열 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, 포인터

오늘은 대선이라 휴식했다. 공부시간이 부족했다. 오늘 배운 것 1. 문제 풀이 . 알고리즘적으로 어떻게 푸는 것인지 배웠다. 나는 단순히 배열을 합치고 sort하면 된다고 생각했는데, 알고리즘 적으로 개선된 알고리즘은 아래와 같다. import java.util.ArrayList; 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.next..

카테고리 없음 2022.03.09