전체 글 47

[LeetCode-237] Delete Node in a Linked List 문제풀이 - Java 사용

Delete Node in a Linked List 문제풀이 - Java 사용 싱글 연결리스트가 있는데, 함수에서는 노드 한개를 입력을 받는다. 입력 받은 노드를 연결리스트에서 삭제할 수 있는 방법을 찾는 문제 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ class Solution { public void deleteNode(ListNode node) { if(node == null ){ return ;} // 삭제노드를 기록 node.val = node.next.val; if(node.next.next != nu..

[LeetCode-217] Contains Duplicate 문제풀이 - Java 사용

Contains Duplicate 문제풀이 - Java 사용 주어진 정수배열에 중복 항목이 있는지 확인 중복되는 원소가 있을시 true 리턴 hashset을 이용 -> contains메서드를 이용하여 값이 중복되어 있는지 확인 class Solution { public boolean containsDuplicate(int[] nums) { // 매개변수가 없으면 false if(nums==null || nums.length==0){ return false; } // hashset -> HashSet은 기본적으로 중복된 원소를 허용하지 않음, // 순서 대로 저장 x HashSet distinct = new HashSet(); // forEach 사용 for(int num : nums) { // num값이..

[LeetCode-141 ] Linked List Cycle 문제풀이 - Java 사용

Linked List Cycle 문제풀이 - Java 사용 LinkedList가 Cycle을 가지고 있는지 찾는문제 head 에서부터 List를 순환하다가 다음 노드가 이전노드를 발견하면 Cycle이 있는 경우이니 바로 true를 return 한다. 이전에 있는 노드를 발견하지 못하고 next가 null 일 경우 Cycle이 없는 경우니 false를 return 한다. /** * Definition for singly-linked list. * class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; * } * } */ //LinkedList가 Cycle을 가지고 있는지 // head 에서부터 Lis..

[Spring] Spring Security 기본 개념 요약 -1

1. Spring Security - 스프링 시큐리티는 스프링 기반의 애플리케이션의 보안(인증과 권한,인가 등)을 담당하는 스프링 하위 프레임워크이다. 스프링 시큐리티는 로그인 기능, 관리자 권한 등과 같은 기술을 좀 더 간편하게 구현할 수 있는 도구이다. 기존에는 세션과 인터셉터를 이용하여 개발자가 수동으로 관련 로직을 만들어야 했지만 스프링 시큐리티 기능을 이용하면 몇 가지 설정으로 기능을 구현할 수 있다. - 스프링 시큐리티의 동작을 이해하기 위해서는 가장 중요한 용어인 인증(Authentication)과 권한(Authorization)에 대한 이해가 필요함 인증 : 자신을 증명하는 것 권한 : 자격이 부여된 것 AuthenticationManager(인증매니저 구조) 1. providerManag..

[Spring] 기본개념 - 1 간단요약

1. Spring Framework - 자바(JAVA) 플랫폼을 위한 오픈소스(Open Source) 경량급 애플리케이션 프레임워크(Framework) - 프레임워크는 뼈대나 근간을 이루는 코드들의 묶음 -> 개발에 필요한 구조를 이미 코드로 만들어 놓았기 때문에 필요한 부분을 조립하는 형태로 개발 - 스프링 쓴이유 1. XML 이나 어노테이션(프로그램에 관한 데이터 제공) 등을 이용한 선언적 관리 가능 2. 개발의 복잡성 감소, 테스트 관리 및 유지보수가 좋음 3. 크기와 부하의 측면에서 경량 -> 제어역행(IOC)라는 기술을 통해 애플리케이션의 느슨한 결합을 도모 2. MVC - 모델(Model) 뷰(View) 컨트롤러(Controller) 합성어로 소프트웨어 공학에서 사용되는 아키텍처 패턴 - MV..

[LeetCode-104 ] Maximum Depth of Binary Tree 문제풀이 - Java 사용

Reverse StringMaximum Depth of Binary Tree 문제풀이 - Java 사용 주어진 이진 트리에서, 최대 깊이를 찾으십시오. 최대 깊이는 루트노드로부터 가장 멀리 있는 노드의 층수 입니다. /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNode(int val, TreeNode left, TreeNode right) { * this.val = val; * this.left = left; * this.right = ri..

[LeetCode-344 ] Reverse String 문제풀이 - Java 사용

Reverse String 문제풀이 - Java 사용 문자의 배열이 입력으로 들어오면 해당배열을 거꾸로배열을 출력하는 문제이다. 단 입력된 배열을 그대로 조작 public class Solution { public void reverseString(char[] s) { int i = 0; int j = s.length - 1; /* 매개변수 s에는 s[0] = h s[1] = e s[2] = l s[3] = l s[4] = o 들어있음 1. while(i 0 tmp는 h s[i] = s[j]; => s[0] 은 o s[j] = tmp; => s[j] 은 h i++; => i 1증가 j--; => j 1감소 } 2. while(i 1 tmp는 e s[i] = s[j]; => s[1] 은 l s[j] = t..