본문 바로가기

분류 전체보기

(172)
[Leetcode 3/100] Reverse Integer - Easy https://leetcode.com/problems/reverse-integer/ Reverse Integer - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 문자열로 푸는 방식 class Solution { public int reverse(int x) { String reversed = new StringBuilder().append(Math.abs(x)).reverse().toString(); try{ return ( x < 0 ) ? Integer.p..
[Leetcode 2/100] Add Two Numbers - Medium https://leetcode.com/problems/add-two-numbers/ Add Two Numbers - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com (다시 풀기) /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode..
[Leetcode 1/100] Two Sum - Easy https://leetcode.com/problems/two-sum/ Two Sum - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 난이도 : Easy 난이도 easy 문제로 문제를 보자마자 바로 브루트포스 방식으로 풀었습니다. 솔루션에는 시간복잡도가 O(n)으로 해쉬 맵을 활용한 인상적인 풀이가 있어서 공유합니다. 내 풀이 class Solution { public int[] twoSum(int[] nums, int target) { int[] arr = n..
JPA, ORM, Hibernate란? JPA(JAVA PERSISTENCE API) 자바에서 제공 하는 인터페이스로 ORM 기술에 대한 명세서 관계형 데이터베이스를 사용하는 방식을 나타내고 있다. ORM이므로 자바 클래스와 DB table을 Mapping 합니다. ORM은 뭔가..?(Object-relational mappping) 객체와 관계와의 설정입니다. 객체란 OOP에서 말하는 객체이며 관계는 관계형 데이터베이스 사용하는 그 관계입니다. ORM을 통해 관계형 데이터베이스의 관계를 객체(Object)에 반영하여 조금 더 객체지향에 근접한 프로그래밍을 위해 나온 기술입니다. Hibernate란?? 하이버네이트는 JPA 구현체의 한 종류입니다. JPA는 자바에서 제공하는 인터페이스로 ORM 기술에 대한 명세서라고 했습니다. 이 JPA 인터..
Springboot의 의존성 관리 스프링부트 디펜던시는 버전을 입력하지 않아도 의존성 관리를 해줍니다. 이전에 안드로이드 개발을 경험할 때 모든 버전을 하나씩 작성해줘야 하는 것이 번거롭고 어려웠는데 스프링 부트는 스프링부트 스타터 페어렌트에서 모든 의존성을 관리해줍니다. (물론 예외는 있습니다.) 스프링부트 프로젝트의 parent form에 가서 타고 올라가게 되면 spring-boot-starter-parent -> spring-boot-dependencies pom으로 이동할 수 있는데 여기에서 스프링부트가 모든 의존성관리를 자동으로 해주는 것을 확인할 수 있습니다. 그러므로 저 pom에서 하나라도 사용하게 되는 디펜던시는 우리가 버전을 명시하지 않아도 자동으로 의존성 관리가 됩니다. 이 방식의 장점때문에 개발자가 직접 관리해야 하..
프로그래머스 - 단어변환(DFS) https://programmers.co.kr/learn/courses/30/lessons/43163 코딩테스트 연습 - 단어 변환 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 programmers.co.kr 프로그래머스 단어변환입니다. DFS를 활용하여 풀 수 있습니다. 1. 단어를 변환할 수 있는 모든 경우의 수만큼 탐색을 진행합니다. 2. DFS의 종료 조건을 설정 3. DFS가 종료 조건을 달성했을 때, 달성까지 걸린 재귀의 횟수를 카운트( 재귀하는 만큼 단어의 변환 작업이 이루어 난 것) 4. 카운트 한 수중에서 가..
프로그래머스 - 타겟넘버 (DFS, 조합 두가지 풀이) https://programmers.co.kr/learn/courses/30/lessons/43165?language=java 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+ programmers.co.kr 프로그래머스 타겟 넘버 문제입니다. 문제의 의도는 DFS를 활용한 풀이인것 같습니다. 그러나 처음에 연산자의 조합을 구해서 문제를 푸려고 시도했고 그 과정에서 많은 고민도 했네요.. 연산자의 조합을 이용한 풀이 조합의 경우 순서를 신경쓰지 않아도 되지만 이 풀이에서는 조합의 순서를 신..
프로그래머스 - 네트워크(DFS/BFS 두가지 풀이 법) https://programmers.co.kr/learn/courses/30/lessons/43162 코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있�� programmers.co.kr 프로그래머스 네트워크 문제입니다. DFS, BFS로 두가지 방법으로 풀어보았습니다. 소스의 BFS 매서드 사용부분에 DFS 매서드를 사용해도 정답이 나옵니다. import java.util.LinkedList; import java.util.Queue; public class 네트워크2 { class Solution { boolean[] visited;..