공부하고 기록하는, 경제학과 출신 개발자의 노트

분류 전체보기 501

[Python] LeetCode 56. merge intervals

leetcode.com/problems/merge-intervals/ Merge Intervals - 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 겹치는 구간을 병합하는 문제. 파이썬의 리스트 병합문법 중 하나인 " , " 를 배웠다. 이 코드는 아래 책을 참고하였다. 파이썬 알고리즘 인터뷰 국내도서 저자 : 박상길 출판 : 책만 2020.07.15 상세보기

[Python] LeetCode 743. Network Delay Time

leetcode.com/problems/network-delay-time/ Network Delay Time - 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 다엑스트라 알고리즘 구현이 주목적인 문제. defaultdict / heapq 자료구조를 활용해 다엑스트라 알고리즘 구현을 해볼 수 있다. 이 코드는 아래의 책을 참고해 작성했다. 파이썬 알고리즘 인터뷰 국내도서 저자 : 박상길 출판 : 책만 2020.07.15 상세보기

Ubuntu 인스턴스에 MySQL 올리기

Ubuntu 16.04에 Mysql 5.7 / 8.0.22를 설치하면서 구글링했던 내용들 정리 Mysql 설치하기 mysql-client : 데이터베이스에 연결하고, CLI로 mysql 명령어를 실행하기 위한 프로그램 mysql-server : 데이터베이스를 host, 관리하기 위한 프로그램. 일반적으로 둘 다 필요한 경우가 많음. sudo apt-get update sudo apt-get install mysql-server mysql-client cf. mysql 버전 8을 설치하고 싶은데, sudo apt-get으로 실행하면 5.7이 설치되는 경우 # 실행중인 mysql 프로세스를 종료한 뒤 sudo apt-get remove --purge mysql* sudo apt-get autoremove s..

Tomcat 서버 구동시 Creation of SecureRandom instance for session ID generation Warning 해결

빈 리눅스 / 우분투 인스턴스에서 Spring Boot 웹 애플리케이션을 runnable Jar파일로 구동할 때 마주한 오류. Exception처럼 프로그램이 종료되는 것도 아니고, 애플리케이션 로직에도 문제는 없지만 서버에 요청을 보냈을 때 응답을 받기까지 매우 오랜 시간이 걸리는 상황이 발생했다. Creation of SecureRandom instance for session ID generation using \[SHA1PRNG\] took \[43,222\] milliseconds. 요청에서 응답까지 43초가 걸렸다. 다른 요청에서는 213초까지 걸리기도 했다. 원인을 분석한 포스트를 여러 개 찾아봤다. https://goni9071.tistory.com/entry/connection-reset..

[Python] LeetCode 78. Subsets

leetcode.com/problems/subsets/ Subsets - 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 부분집합을 만들어야 하는 문제에서, permutation / combination 라이브러리는 모든 경우의 수를 iterate 형태로 반환하기 때문에 시간초과가 발생할 수 있었다. 부분집합을 dfs 방식으로 생성하는 기본 문제이자 코드. 아래 코드는 이 책을 참고해서 작성하였다. 파이썬 알고리즘 인터뷰 국내도서 저자 : 박상길 출판 : 책만 2..

[Python] 프로그래머스. 예상 대진표 (Level 2)

programmers.co.kr/learn/courses/30/lessons/12985# 코딩테스트 연습 - 예상 대진표 △△ 게임대회가 개최되었습니다. 이 대회는 N명이 참가하고, 토너먼트 형식으로 진행됩니다. N명의 참가자는 각각 1부터 N번을 차례대로 배정받습니다. 그리고, 1번↔2번, 3번↔4번, ... , N-1번↔N programmers.co.kr A < B인 A, B를 전제하면, 문제 조건에서 A와 B는 서로 만나기 전까지 반드시 승리하므로 A와 B는 대전을 거쳐갈 때마다 (자신의 위치 // 2 + 자신의 위치 % 1) 이 된다. ex) A. B = 4, 7인 경우 1회 대전 후 A와 B의 위치는 A는 3과 대전해 승리하므로 (4 // 2 + 4 % 2) = 2번째. B는 8과 대전해 승리하..

Java8 Stream - Optional - Date 정리

인프런 '더 자바- 자바8' 백기선님 강의내용 정리 Stream 정의: 연속된 데이터를 처리하는 Operation 모음. Collection이 데이터를 모아놓은 자료구조라면, Stream은 이걸 토대로 데이터를 원하는 방식으로 처리하는 것. 따라서 데이터 저장소의 개념이 아니다. 특징 Function in Nature. 원본 데이터를 변경하지 않는다. Stream stringStream = names.stream().map(String::toUpperCase); Stream으로 어떤 연산을 수행한 결과는 stream 객체이고, 원본은 바뀌지 않는다. 스트림으로 들어온 데이터는 한 번만 처리 (반복문 개념이 아님) seamless하게 들어오는 데이터 처리 가능. (무제한으로 데이터가 들어오면, 무한히 처리..

[Python] LeetCode 3. Longest Substring without repeating characters

leetcode.com/problems/longest-substring-without-repeating-characters/ Longest Substring Without Repeating Characters - 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 중복 문자열 없는 가장 긴 부분문자열 구하기. 슬라이딩 윈도우 + 투 포인터로 해결이 가능하다. 아래 풀이는 이 책의 코드를 참고했다. 파이썬 알고리즘 인터뷰 국내도서 저자 : 박상길 출판 : 책만 2020..

Java Reflection 정리

인프런 &#39;더 자바 - 코드를 조작하는 다양한 방법&#39; 백기선님 강의내용 정리 Reflection 코드를 조작하는 다양한 방법 중 하나. 정의된 클래스 / 메소드 / annotation 정보를 확인하고 참조하기 인스턴스를 생성하고, 필드값을 변경하며, 메소드를 실행할 수 있는 방법. 스프링부트 프로젝트 생성. dependency에 스프링 웹 추가. BookService와 BookRepository라는 두 개의 컴포넌트를 생성하고, BookService에 Autowired로 BookRepository를 추가한 뒤 BookServiceTest 코드를 아래처럼 작성한다. package com.inspirit941.thejavaspringreflection; import org.junit.jupite..

[Python] LeetCode 739. Daily Temperature

leetcode.com/problems/daily-temperatures/ Daily Temperatures - 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 각각 현재 날짜를 기준으로, 현재보다 더 온도가 높은 날이 있기까지 며칠이 걸리는지를 구하는 문제. stack을 사용해서 풀 수 있는, 백준 '오큰수' 와 완전히 동일한 문제. [Python] 백준 17298. 오큰수 스택을 사용해 풀 수 있는 문제. _ = input() # len(arr) 값과 똑같아서..