이유's STUDY

    [Leetcode] Add two numbers

    리트코드 - 링크드인을 사용하여 add tow numbers 를 진행함 1st. Try. 먼가 코드가 엄청 지저분해지고 조건문 이것저것이다... 결국 하루 동안 고민하다가 답지를 보게 됨. /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode next) { this.val = val; this.next = next; } * } */ class Solution { public ListNode addTwoNumbers(ListNode l1, L..

    [ leetcode ] dfs 문제 - number of islands

    다시 한번 DFS 개념을 집고 넘어가자! - 0번째 노드에서 이제 깊이 인접한 노드를 다 도는 방식으로 / stack 처럼 안에 넣었다가 지나갔으면 빼고 약간 이런식으로 동작함. 여기서 이제 궁금한 것. dfs 로 문제 풀기! if ( grid[i][j] == '1') 로서 이제 그게 1 일 경우에만 지나갈 수 있도록 설정!! - 이 1로서 설정하는 것은 이제 해당 내용의 값이 1 일 경우에 즉 땅일 경우에만 돌아가면 되기 때문..! 물인데 굳이 돌 필요 없자나? 1st Try -- checked 랑 언제 빠져나가야할지 고민... class Solution { //x 좌표, y 좌표로 돌아가면서 간다고 생각해야함 // 섬을 찾아서 이게 연결된 곳이 없을 때까지 계속 돌아가면서 찾아간다. static bo..

    [ 자료구조 ] LinkedList

    다시 시작된.. 자료구조의 세계로.. 이번엔 링크드 리스트 구분 힘들었던 점.. ! 우선 nullpointer exception이 너무 나서 그걸 처리하는 게 꽤 많은 힘이 들었다. 보면 insert 를 할때나 delete 할 때 모두 if 문으로 size 에 맞지 않을 경우 예외처리를 해주어야하는데 해당 부분에서 애를 먹어서 다른 사람들 코드를 좀 창고하였다. ㅎㅎ import lombok.val; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; class MyLinkedList { // 하나하나의 작은 노드를 생성 class Node { privat..

    [ 백준 ] 2580 번 - 스도쿠 / java 이용 / 아직 못 푼 문제 ㅠㅠ

    [ 백준 ] 2580 번 - 스도쿠 / java 이용 / 아직 못 푼 문제 ㅠㅠ

    우선 dfs 와 bfs 를 조금더 공부하고 다시 풀어봐야겠다! dfs 로 풀면 되는데 어디서 재귀조건으로 나가는지 지나가는지 확인하기. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class Main { public static int N, M =0; public static StringBuilder sb = new StringBuilder(); public static boolean check[]; public static int arr[][] = new int[9][9]; public static void sudoku(int row,..

    [ 백준 ] 1560번 - N과 m (2) --- java 이용

    [ 백준 ] 1560번 - N과 m (2) --- java 이용

    N 과 m 자바를 이용해서 한다~! n 과 m (1) 번 문제와 거의 동일하고 우선 오름차순을 해야하기 때문에 정렬 알고리즘인 arr[index] > arr[index-1] 이 되는지 확인을 해주는 로직이 들어간다..! 또한 중복 없이기 때문에 중복을 체크해주기 위해 check[] boolean 배열을 통해서 체크해준다! import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class Main { public static int N, M =0; public static StringBuilder sb = new StringBuilder(); pub..

    [ 백준 ] 11729 - 하노이 탑 이동 순서

    [ 백준 ] 11729 - 하노이 탑 이동 순서

    하노이 탑 - 재귀문제에서도 정말 유명한 문제 핵심은 f(n) 일 경우 * 나머지 f (n-1) 의 탑들이 1번에서 2번으로 가고 * 남은 f(n) 의 가장 큰 탑이 3번으로 가고 * 그다음에 f(n-1) 의 탑들이 2번에서 3번으로 가야한다. 이처럼 재귀는 f(n) 과 f(n-1) 의 관계를 살펴보는 것이 핵심 그리고 answer 나 string builder sb 변수같은 경우에는 main class 안에 static 으로 선언해주었다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class Main { public static in..

    [ 백준 ] 별찍기 -10 -- Java 이용

    [ 백준 ] 별찍기 -10 -- Java 이용

    import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class Main { public static void printStar(int x, int y, int num, String[][] arr) { // int avg = Math.round(num/2+1); // 핫 이렇게 avg 변수 만들어서 해보았지만 실패 // 이런식으로 재귀는 먼저 찍어보는 과정이 필요하다. // System.out.println("x = " + x); // System.out.println("y = " + y); // System.out.println("num = "..

    [ 백준 ] 10872- 팩토리얼

    [ 백준 ] 10872- 팩토리얼

    import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.*; public class Main { public static int factorial(int num) { if(num!=0) return num*factorial(num-1); else return 1; } public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilde..