배열class Solution { public int\[] solution(long n) { ArrayList num = new ArrayList<>();} ArrayList num = new ArrayList<>(); while(n > 0)
평균 구하기} class Solution { public double solution(int\[] arr) { int sum = 0;class Solution { public double solution(int\[] arr) { in
문자열 내 p와 y의 개수class Solution { boolean solution(String s) {}class Solution { boolean solution(String s) { boolean answer = true;// 문자열을 문
문자열을 정수로 바꾸기처음에는 전날 했던 배열을 사용해야 되나 싶어서 배열도 만들어볼까? 순서를 바꿔서 10씩 곱해야하나 이런 생각을 하다가 문자열 자체를 Int로 바꿔버리면 끝나는 간단한 방법을 생각해내고 바로 끝내버렸다...어제 사용했던것은 String 타입의 문자
오늘의 학습 키워드 완주하지 못한 선수 >### 공부한 내용 본인의 언어로 정리하기 >### 오늘의 회고 배열을 비교하려면 순서대로 정렬을 해놓는게 맞을 것 같아 출전한 선수와 완주한 선수를 정렬 오름차순으로 정렬을 하는 것으로 시작했다. 처음에는 2중 for
폰켓몬class Solution { public int solution(int\[] nums) {}Arrays.sort(nums); //배열 오름차순 정렬 1,2,3,3,4List overlapRemoval = new ArrayList<>(); //중복제거
같은 숫자는 싫어public class Solution { public int\[] solution(int \[]arr) { List unique = new ArrayList<>(); //중복제거완료 목록}List unique = new Arra
올바른 괄호class Solution { boolean solution(String s) { char\[] arr = s.toCharArray();}if (left.size() != right.size()) { return false;}if (lef
Relative Ranks}Map<Integer, Integer> scores = new HashMap<>(); //key 와 value를 함께 가져갈 수 있는 HashMap 생성 for(int i = 0; i < score.length; i++){
Kth Largest Element in a Stream}private PriorityQueue minHeap;private int k;public KthLargest(int k, int\[] nums) { this.k = k;public int add(i
정수 내림차순으로 배치하기class Solution { public long solution(long n) {}String\[] arr = String.valueOf(n).split("");Arrays.sort(arr, Collections.reverseOrder
문자열 내림차순으로 배치하기class Solution { public String solution(String s) { char\[] charArray = s.toCharArray();}ArrayList lowercase = new ArrayList&
Search in a Binary Search Tree오늘은 이분탐색을 주제로 문제나 나왔다. 문제를 풀기 전 문제에 대해서 이해하기 위해서 Binary Search Tree에 대해 먼저 조사했다.이진 탐색 트리는 다음과 같은 특성을 가진 노드들의 집합이다.각 노드는
Symmetric Tree}public boolean isSymmetric(TreeNode root) { if (root == null) { return true; } return isMirror(root.left, root.right);}private boolean
</> 완전탐색class Solution { public int\[] solution(int\[] answers) {}//수포자1,2,3의 반복된 답안 배열int\[] one = {1,2,3,4,5};int\[] two = {2,1,2,3,2,4,2,5};i
</> 완전탐색}명함 번호 가로 길이 세로 길이1 60 502 30 70for(int\[] card : sizes){ int width = Math.max(card0,card1); int height = M
</> 깊이/너비 우선 탐색(DFS/BFS)오늘 주제는 깊이/너비 우선 탐색이었다. 문제를 번역 해보았을때 나온것은 이진트리의 중위순회라고 나와있어서 우선 중위순회가 무엇인지 부터 검색을 시작했다.순회방법에는 전위순회, 중위순회, 후위순회가 있다고 한다. 각 순회
</> 깊이/너비 우선 탐색(DFS/BFS)}class Solution { public TreeNode increasingBST(TreeNode root) { return increasingBST(root, null); }}
</> 탐욕법(Greedy)class Solution { public int solution(int k, int m, int\[] score) { int answer = 0;}class Solution { public int solution
오늘의 학습 키워드 * 탐욕법(Greedy)* >### 공부한 내용 본인의 언어로 정리하기 >### 오늘의 회고 오늘도 주제가 탐욕법이어서 어제와 비슷한 방법으로 풀이를 하면 되겠다고 생각하고 과정부터 작성을 시작하였다. 하지만 배열로 하지 않고 부여되는 배열의
</> 동적계획법class Solution { public List<List> generate(int numRows) { List<List> triangle = new ArrayList<>();}List<List> trian
</> 동적계획법}List row = new ArrayList<>();row.add(1);row.add(1);for(int i = 1; i <= rowIndex; i++)for(int j = i - 1; j > 0; j--)row.get(j, row.s
오늘의 학습 키워드 * 탐욕법(Greedy Algorithm)* >### 공부한 내용 본인의 언어로 정리하기 >### 오늘의 회고 오늘 문제는 보자마자 풀이 방법이 바로 생각나서 시작했다. 첫 마주함과 동시에 오름차순 정렬 후 2개씩 묶어서 최소 값을 구해서 더
</> 그래프 }Set allValue = new HashSet<>();Set duplicates = new HashSet<>();for(int i = 0; i < edges.length; i++){ for(int j = 0; j < edge
</> 그래프 }Map<Integer, List> map = new HashMap<>();for (int i = 0; i < n; i++) { map.put(i, new ArrayList<>());}for (int\[] edge : ed
</> 시뮬레이션 }int minRow = wallpaper.length;int minCol = wallpaper0.length();int maxRow = -1; int maxCol = -1; for (int i = 0; i < wallpaper.length
</> 시뮬레이션 class Solution { public int\[] solution(String\[] park, String\[] routes) { int H = park.length; int W = park0.length();
</> 스택/큐 }Queue<int\[]> queue = new LinkedList<>();PriorityQueue pq = new PriorityQueue<>(Collections.reverseOrder());for(int i = 0; prior
오늘의 학습 키워드 ** 이분탐색 ** >### 공부한 내용 본인의 언어로 정리하기 >### 오늘의 회고 오늘 문제는 이분탐색의 주제로 배열에서 누락된 값을 찾아내는 문제였다. n이 nums.length이고 그 숫자중 누락된 값을 찾는것이면 오름차순으로 정렬한 후에 어차피 시작은 0 부터이니까 인덱스 시작 값과 같으므로 nums의 길이만큼 반복하며...
</> 이분탐색 }long low = 1;long high = n;while(low <= high){ long mid = low + (high - low) / 2; long sum = mid \* (mid+1) / 2;}if(sum > n){ high
</> 깊이/너비 우선 탐색(DFS/BFS) public class Main { public static void main(String\[] args) { Scanner sc = new Scanner(System.in); int N
</> 깊이/너비 우선 탐색(DFS/BFS) }import java.io.;import java.util.;public class Main { // 방향을 나타내는 이차원 배열 private static final int DIRECTIONS = {
</> 깊이/너비 우선 탐색(DFS/BFS) }class Solution { int count = 0;}
</> 깊이/너비 우선 탐색(DFS/BFS) public class Main { static int H, W; static char grid; static boolean visited;}static int H, W;static char grid;s
</> 깊이/너비 우선 탐색(DFS/BFS)}static int M,N,K;static int square;static boolean visited;static int direction = {{-1, 0}, {1, 0}, {0, -1}, {0, 1}}; // 상,
</> 완전 탐색} int\[] arr = new int5; int count = 0; int result = 0;for(int i = 0; i < 5; i++){ arri = sc.nextInt();}while(true){ re
</> 완전 탐색public class Main{ public static void main(String\[] args){ Scanner sc = new Scanner(System.in);}import java.util.\*;public clas
</> 탐욕법 }String\[] list = s.split("");Map<String, Integer> countList = new HashMap<>();for(int i = 0; i < list.length; i++){ countList.put
</> 탐욕법 }Arrays.sort(g);Arrays.sort(s);int iIndex = 0;int jIndex = 0;while(iIndex < g.length && jIndex < s.length)if(giIndex <= sjIndex)if
</> 동적계획법 }int n = cost.length;int\[]dp = new intn+1;dp0 = 0;dp1 = 0;for (int i = 2; i <= n; i++) { dpi = Math.min(dpi - 1 + costi -
오늘의 학습 키워드 * 동적계획법 * >### 공부한 내용 본인의 언어로 정리하기 >### 오늘의 회고 오늘 문제는 주어진 n의 값을 이용해 트리보나치 공식을 이용해서 Tn의 값을 반환하는 문제였다. 오늘도 동적계획법을 이용하여 풀이했는데 문제를 보니 메모이
</> 동적계획법 }if(prices.length < 2){ return 0;}int maxProfit = 0;int minPrice = Integer.MAX_VALUE;for(int price : prices){ if(price < minPrice){