[LeetCode] Binary Tree Inorder Traversal
·
코딩테스트
leetcode.com/explore/interview/card/top-interview-questions-medium/108/trees-and-graphs/786/ 이진 트리!!!! 이론을 공부해도 코드로 구현하기는 녹록치 않다 💬 30분동안 푼 내용..문제 해석하느라 정신이 없었다. 노드를 순회하는 순서와 재귀함수를 써서 반복해야 하는것은 알았지만 코드 정리가 안되고 헤매는 모습😅 메서드를 새로 생성해도 된다는 생각을 못하고 해당 메서드 안에서만 풀려고하니까 이래저래 더 꼬인듯하다. public class BinaryTree0310 { public List inorderTraversal(TreeNode root) { //순서대로 처음에 들어오는 root가 루트노드 //그 다음이 left //그 다음이..
[알고리즘] 트리와 이진트리 - 이진트리(Binary Tree) 검색
·
코딩테스트/자료구조∕알고리즘
이번 코딩테스트 문제는 이진검색을 활용해서 풀어야한다고 해서 이론공부를 먼저 하고, 관련된 실습문제를 따라 작성해보았다. 이진트리 이론은 이해했지만, 자바코드로 구현하려니 머리가 멍해졌다. 💭 자바코드로 구현할 때 노드 자체를 써 본 경험이 적어서 그런것 같아 이번기회에 정리하고 익숙해지려고 한다. 1. 트리(Tree) 트리는 노드(Node)들과 이 노드들을 연결하는 링크(link)로 구성되며 계층적 구조를 표현할 때 사용된다. 조직도 디렉토리와 서브디렉토리 구조 가계도 트리(Tree) 의 기본 성질 노드가 N개인 트리는 항상 N-1개의 링크(link)를 가진다. 트리 루트에서 어떤 노드로 가는 경로는 유일하다. 또한 임의의 두 노드간의 경로도 유일하다. (같은 노드를 두 번 이상 방문하지 않는다는 조건..
[LeetCode] 509. Fibonacci Number (JAVA)
·
코딩테스트
leetcode.com/problems/fibonacci-number/ Fibonacci Number - 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 일반적인 재귀함수 풀이 (= 내 풀이) public int fib(int n) { int result = 0; //1. if문으로 했을 때 if(n==0){ result=0; }else if(n==1){ result=1; }else{ result=fib(n-1)+fib(n-2); } //2. switch문 swi..
[MySQL] Oracle 프로젝트 MySQL로 변경하기
·
DataBase/MySQL
기존 Oracle DB를 사용했던 Spring 프로젝트를 MySQL로 변경해서 적용해보려고 한다. 먼저 Toaf For MySQL에 새로 데이터베이스, 사용자를 만들어주고 기존 테이블 및 데이터를 MySQL에 맞게 변형해주었다. 1. pom.xml MySQL Connector/J dependency 추가하기 🔹 빌드도구를 사용하는 경우 MySQL 과 JAVA를 연결하기 위한 dependency 를 추가하기 위해 메이븐 원격 레포지토리에서 MySQL Connector/J 검색 mvnrepository.com/artifact/mysql/mysql-connector-java 원하는 Version 클릭 ( 8.0.23 버전 사용 ) 3. 해당하는 빌드 툴(Maven)의 dependency 코드 복사 ➡ pom...
[MySQL] 저장 프로시저 (Stored Procedure)
·
DataBase/MySQL
1. 저장 프로시저 (Stored Procedure)란? 일련의 SQL문장을 선언해서 MySQL에 저장하고, 해당 SQL문을 함수처럼 사용하는것으로 만들어 두기만 하면 함수처럼 호출하여 편하게 사용할 수 있다. 2. 저장 프로시저 생성 / 호출 🔸 저장 프로시저 생성 예) 고객 테이블에서 고객이름순으로 조회한 정보를 저장 프로시저로 생성 DELIMITER $$ CREATE PROCEDURE GetCustomers() BEGIN SELECT customerName, city, state, postalCode, country FROM customers ORDER BY customerName; END $$ DELIMITER ; 🔹 DELIMITER 는 왜 사용할까? 저장 프로시저 내부에 사용하는 SQL문은 일..
How the DNS works
·
코딩테스트
코딩테스트 스터디 시간에 DNS 작동방식을 이해하는데 도움이 되는 영상을 추천받아서 보고왔다. 3분도 안되는 짧은 영상이지만, 영상 이미지로 쉽게 설명해줘서 이해하기 좋다. 해석은 더보기 - 더보기 컴퓨터를 비롯한 장치들은 인터넷상에서 서로를 구별짓기위해 각 장치가 갖고있는 IP 주소를 가지고 통신합니다. 우리는 IP 주소를 기억하는 대신 단어로 표현된 주소를 사용합니다. 예) WWW.GOGGLE.CA, WWW.NAVER.COM DOMAIN NAME SYSTEM(이하 DNS)은 개별 IP주소와 이 단어로 된 주소를 가져와 당신이 원하는 페이지의 사이트를 보여줍니다. 영상은 이 DNS가 어떻게 작동하는지를 다룬 영상입니다. 사용자가 WWW.FLAMINGFLAMINGOS.CA 주소를 검색하면서 시작됩니다. ..
[MySQL] 내장 함수 정리
·
DataBase/MySQL
※ 자주 사용하는 함수 현재 날짜 조회 SELECT current_timestamp; #2021-03-07 오후 9:27:21 SELECT NOW(); #2021-03-07 오후 9:27:21 SELECT SYSDATE(); #2021-03-07 오후 9:27:21 SELECT CURDATE(); #2021-03-07 오전 12:00:00 날짜 및 시간 더하기/빼기 #기준날짜로부터 하루 뒤 날짜 조회 SELECT DATE_ADD("2021-03-07 23:59:59", INTERVAL 1 DAY); #한달 전 #customer 테이블에서 한달 전 ~ 오늘까지 등록된 데이터 조회 SELECT * from customer where created >= date_add(now(), interval -1 mon..
[MySQL] 데이터 한번에 입력하기 (Data import)
·
DataBase/MySQL
다량의 데이터를 테이블에 한번에 insert하는 방법 zipcode 테이블을 하나 생성해서 .text 확장자로 저장된 우편 데이터를 테이블에 한꺼번에 insert 하려고 합니다. 데이터 사이에 구분만 되어있다면 (예: 탭, 컴마 등) 토드에서는 import 기능을 이용해서 다양한 확장자의 데이터를 테이블에 한번에 기입할 수 있습니다. 먼저 zipcode 테이블을 하나 생성합니다. --우편번호 5자리 create table zipcode ( zipcode varchar(5), sido varchar(100), gugun varchar(100), dong varchar(200), startbunji varchar(100), endbunji varchar(100), seq INT primary key AUTO..
[MySQL] 테이블 분리와 JOIN - 데이터 중복 최소화
·
DataBase/MySQL
1. 데이터 중복 최소화 (목적) 데이터베이스 관리에 있어서 데이터가 중복된다는것은 명백하게 '개선할 부분'이 있다는 것을 의미한다. 데이터 양이 적을 경우, 중복이 크게 영향을 미치지 않지만 대량의 데이터를 관리하게 될 경우 '데이터 중복'은 엄청나게 큰 비용이기 때문이다. 단순히 데이터를 보관하는 비용이 커질 뿐만 아니라 데이터를 수정할 때도 시간적, 경제적 비용이 어마어마하다. 예시로, 다음의 topic 테이블을 보자. 위의 테이블을 보면 author 컬럼과 profile 컬럼 데이터가 중복되는 것을 확인할 수 있다. 이 경우 데이터 보관도 보관이지만.. 만약 author = 'Hee'인 데이터를 수정하려면 하나하나 수정해주어야 한다. 지금은 2개의 데이터만 수정하면 된다고 생각하겠지만, 중복데이터..
[MySQL] CRUD - Create, Select, Insert, Update, Delete
·
DataBase/MySQL
데이터베이스의 본질인 CRUD 데이터를 생성하고, 읽고, 수정하고, 삭제하는 방법이다. 이 중, Create와 Select문이 가장 중요하다. 경우에 따라 Update와 Delete는 사용할 경우도 별로없고, 실무에서는 사용하지 않는 경우도 많기 때문이다. 예를 들어 금융 전산의 경우 데이터를 바꾸거나(Update) 지우는 것(Delete) 자체로 범죄가 되는 ... 💣 하지만 프로젝트를 진행하면 데이터를 조작 할 일이 아주 많으므로 SQL문을 배운다면 CRUD 모두를 알아두어야 한다. DDL, DML, DCL 에 관련해서는 데이터베이스 글에 설명해두었으므로 이를 참고하자. 2021/03/02 - [DataBase] - 데이터베이스(Database, DB) 데이터베이스(Database, DB) 🔍 DB,..