Mysql 이미지 설치 docker pull mysql docker-compose 파일 생성 version: "3" services: db: # 서비스 명 image: mysql:latest # 사용할 이미지 container_name: test-mysql # 컨테이너명 설정 ports: - "3306:3306" environment: MYSQL_ROOT_PASSWORD: "root" # roor 계정 패스워드 설정 command: # 명령어 - --character-set-server=utf8mb4 - --collation-server=utf8mb4_unicode_ci volumes: # 다렉토리 마운트 설정 - /데이터 저장할 local 폴더 경로:/var/lib/mysql docker-compose..
Read morecase 목록 case1. 현재날짜를 년-월 yyyyMM 포맷으로 조회 public static String getCurrentYearMonth() { LocalDate currentDate = LocalDate.now(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMM"); return currentDate.format(formatter); } case2. 받아온 날짜를 매개변수 format(yyyy-MM-dd, yyyyMM 등) 포맷으로 조회 public static String getDateFormat(String date, String format) { DateTimeFormatter formatter = DateTimeFor..
Read moreElasticSearch 설치 Docker + Elasticsearch 설정하는 이전 포스팅을 참고하자. devfunny.tistory.com/365 Docker Centos7에 ElasticSearch + Kibana 설치하여 외부 로컬에서 접속하기 (with Docker Hub) 들어가기전 docker에 centos7을 설치 후, 해당 컨테이너를 실행하고 그 안에 Elasticsearch와 Kibana를 설치하여 localhost:5601로 kibana를 띄어볼 것이다. 이를 위한 순서는 아래와 같다. 1) Centos 설치 2) JDK.. devfunny.tistory.com 설정파일 생성 1) build.gradle Import /* elasticsearch */ compile 'org.sprin..
Read more문제 괄호로 된 입력 값이 올바른지 판별하라 입력: ()[]{} 출력: true 나의 코드 문제 : leetcode.com/problems/valid-parentheses/ # 괄호로 된 입력 값이 올바른지 판별하라 # 입력 ()[]{} # 출력 true # 리스트로 구현해보자. class Solution: def isValid(self, s: str) -> bool: dict = {"(": ")", "[": "]", "{": "}"} # 문자열을 리스트로 변환 value_list = list(s) print(value_list) i = 0 while i < len(value_list): key = value_list[i] # 존재한다면 if dict.get(key) in value_list: value..
Read more문제 연결리스트를 뒤집어라. 입력 : [1 -> 2- > 3 -> 4 -> 5 -> NULL] 출력 : [5 -> 4 -> 3 -> 2 - > 1 -> NULL] 정답코드 # Definition for singly-linked list. class ListNode: def __init__(self, x): self.val = x self.next = None class Solution: def reverseList(self, head: ListNode) -> ListNode: node, prev = head, None while node: next, node.next = node.next, prev prev, node = node, next return 출처 : github.com/onlybooks/al..
Read more문제 정렬되어있는 두 연결 리스트를 합쳐라. 입력: l1 = [1 -> 2-> 4] / l2 = [1 -> 3-> 4] 출력 : [1 -> 1 -> 2 -> 3 -> 4 -> 4] 나의코드 (Fail) # 정렬되어있는 두 연결 리스트를 합쳐라 # 입력 1->2->4, 1->3->4 # 출력 1->1->2->3->4->4 class ListNode: def __init__(self, val=0, next=None): self.val = val self.next = next # 리스트 변환 def mergeTwoLists(l1: ListNode, l2: ListNode) -> ListNode: while l1 is not None: prev = l1.val while l2 is not None: if pre..
Read more문제 연결리스트가 팰린드롬인지 체크해라. 팰린드롬이란, 거꾸로 해도 같은 문자를 뜻한다. 입력 [1 -> 2] : False 입력 [1 - > 2 -> 2 -> 1] : True 나의코드 # 연결리스트가 팰린드롬인지 체크 (팰린드롬이란, 거꾸로해도 같은 문자) # 입력 1-> 2 : false # 입력 1->2->2->1 : true from typing import List class ListNode: def __init__(self, val=0, next=None): self.val = val self.next = next # 리스트 변환 def isPalindrome(self, head: ListNode) -> bool: # 노드가 1개일 경우 - 팰린드롬 if head.next is None: r..
Read more문제 가로의 길이가 N, 세로의 길이가 2인 직사각형 형태의 얇은 바닥이 있다. 이 얇은 바닥을 덮개로 채우고자 하는데, 해울 수 있는 모든 경우의수를 구하라. 덮개는 1 X 2, 2 X 1, 2 X 2 이렇게 3가지로 구성되어있다. 만약 N이 3일 경우 1) (2 X 1) + (2 X 2) 2) (2 X 2) + (2 X 1) 3) (1 X 1) + (1 X 1) + (1 X 1) 4) (2 X 1) + (1 X 2) + (1 X 2) 5) (1 X 2) + (1 X 2) + (2 X 1) 총 5가지 경우가 나온다. 정답코드 # 정수 N을 입력 받기 n = int(input()) # 앞서 계산된 결과를 저장하기 위한 DP 테이블 초기화 d = [0] * 1001 # 다이나믹 프로그래밍(Dynamic P..
Read more상황분석 우리에게 운영중인 레거시 프로젝트가 있다고 가정해보자. 그리고 UserDto 파일이 존재하는데, 해당 Dto 파일은 User 테이블의 필드들을 담고있는 클래스이다. UserDto.java public class UserDto implements CommonUser { private String name; private String gender; private String age; public UserDto(String name, String gender, String age) { this.name = name; this.gender = gender; this.age = age; } @Override public String getName() { return name; } @Override pub..
Read moreCall by Value 값에 의한 호출 public class Main { public static void main(String[] args) { int a = 1; int b = 2; System.out.println(a); // 1 System.out.println(b); // 2 Main main = new Main(); main.update(a); System.out.println(a); // 1 System.out.println(b); // 2 } void update(int a) { /* 지역변수 처럼 */ a = 5; System.out.println(a); // 5 } } 변수 a, b에 각각 1, 2를 할당했다. 그리고 변수를 출력해보면 a = 1, b = 1로 출력된다. 그리고 up..
Read more문제 n개의 페어를 이용한 min(a, b)의 합으로 만들 수 있는 가장 큰 수를 출력하라. 입력: [1, 4, 3, 2] 출력: 4 min(1, 2) + min(3, 4)일 경우에 최대값 4를 출력하게된다. 나의 코드 # min(a, b)의 합으로 만들 수 있는 가장 큰수 # 정렬 # 앞에서 2개씩 묶기 # 작은겄기리 묶고 큰것끼리 묶어야 최소값의 합이 가장 커진다 # [1, 4, 3, 2] -> [1, 2, 3, 4] # 앞에서부터 2개씩 묶었을때 짝수번째의 원소만 추출하면 된다. nums = [1, 4, 3, 2] nums.sort() result = 0 # 반복문 인덱스를 사용하여 짝수번째 원소만 추출 for i, a in enumerate(nums): if i % 2 == 0: result +=..
Read more문제 한번의 거래로 낼 수 있는 최대 이익을 산출하라. 입력 : [7, 1, 5, 3, 6, 4] 출력 : 5 위 예제에서는 1일대 구매하여 6일 경우 판매하는 것이 최대 이익 5를 얻을 수 있다. 나의 코드 1) 첫번째 코드 list = [7, 1, 5, 3, 6, 4] min_value = min(list) # 최소값 저장 min_index = list[min_value] # 최소값 인덱스 저장 print(list[min_value]) # 최소 값의 인덱스 찾기 if min_index == len(list) - 1: print(0) else: # 반복문 실행 for i, v in enumerate(list): if i < min_index: # 최소값 인덱스보다 왼쪽은 pop (이유: 최소값일때 사는..
Read more도입 스프링부트 프로젝트에서 JPA를 사용하여 API를 만드는 상황에 놓였다. 나는 API의 파라미터로 받아올 DTO 파일을 생성하였고, JPA Repository로 보낼 Entity 파일을 생성하였다. com.api.seohae - dto UsersDTO.java - entity Users.java 위 구조로 갔을때 만나게될 상황을 자세히 살펴보자. 상황분석 Users 테이블에 회원을 등록하는 간단한 POST API를 보자. @PostMapping("") public ResponseEntity addUser(@ModelAttribute UsersDto usersDto) { Users users = userService.addUser(usersDto); return ...; } 파라미터로 UsersDto..
Read more문제 어떤수 N이 1이 될 때까지 다음의 두 과정 중 하나를 반복적으로 선택하여 수행하려고한다. 단, 두번째 연산은 N이 K로 나누어떨어질 때만 선택할 수 있다. 1. N에서 1을 뺀다. 2. N을 K로 나눈다. 예를 들어 N = 17, K = 4일 경우 1) 17 - 1 = 16 2) 16 // 4 = 4 3) 4 // 4 = 1 전체 과정을 실행한 횟수는 3이 된다. 이는 N을 1로 만드는 최소 횟수이다. 나의 코드 # 1) N에서 1을 뺀다 # 2) N을 k로 나눈다. # 1) N/K 가 나누어 떨어지는 경우 나눗셈 실행 (우선실행해야 횟수를 최소한으로 할 수 있다.) # 2) 나누어떨어지지 않은 경우 -1 실행 N = 17 K = 4 count = 0 while N != 1: if N % K !=..
Read more문제 다양한 수로 이루어진 배열이 있을때 주어진 수들을 M번 더하여 가장 큰 수를 만드는 법칙이다. 단, 배열의 특정한 인덱스에 해당하는 수가 연속해서 K번을 초과하여 더해질 수 없다. list = [2, 4, 5, 4, 6], M = 8, K = 3 이 경우 특정한 인덱스의 수가 연속해서 세번까지만 더해질 수 있으므로 큰 수의 법칙에 따른 결과는 6 + 6 + 6 + 5 + 6 + 6 + 6 + 6 = 46이 된다. 나의 코드 # 가장 큰 수를 k번 반복 # 두번째로 작은 수를 k번 반복 후 넣고 또다시 가장 큰수 반복 # 위를 실행하며 M개 미만인지 체크해야한다. test = [2, 4, 5, 4, 6] m = 8 # 개수 제한 k = 3 # 반복 개수 제한 # 가장 큰 수 max_value = ma..
Read more