전체 글 116

HashMap(해시테이블)

import java.util.Collection; import java.util.HashMap; import java.util.Set; public class HashMap_test { public static void main(String[] args) { HashMap hm = new HashMap(); //키가 똑같으면 마지막께 들어간다. hm.put(1, "test1"); hm.put(3, "test2"); hm.put(2, "test2"); //해당하는 키가 있으면 true 아니면 false hm.containsKey(1); //해당하는 value가 있으면 true 아니면 false hm.containsValue("test1"); //해당하는 key의 값을 가져와라 hm.get(2); //중복..

ALGORITHM/이론 2020.11.14

AWS EC2 Ubuntu Nginx Vue.js 설치

키 접속 ssh -i [.pem] ubuntu@my-instance-public-dns-name 1. NGINX 설치 $ sudo apt-get update $ sudo apt-get upgrade $ sudo apt-get install nginx apt-get update : 설치된 패키지들의 새로운 버전이 있는지 확인 apt-get upgrade : apt-get update 를 통해 최신 버전이 확인된 패키지들의 버전 업그레이드 install nginx : nginx 설치 2. NGINX 환경 설정 $ cd /etc/nginx/sites-available $ sudo vi default frontend 설정 server { listen 80 default_server; listen [::]:80 ..

Web/AWS 2020.11.11

[백준] 4949번 균형잡힌 세상

www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마 www.acmicpc.net import java.util.Scanner; import java.util.Stack; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (true) { Stack stack = new Stack(); String s = sc.nextLine(); if(s.eq..

[프로그래머스] 2018 KAKAO BLIND RECRUITMENT 캐시

programmers.co.kr/learn/courses/30/lessons/17680 코딩테스트 연습 - [1차] 캐시 3 [Jeju, Pangyo, Seoul, NewYork, LA, Jeju, Pangyo, Seoul, NewYork, LA] 50 3 [Jeju, Pangyo, Seoul, Jeju, Pangyo, Seoul, Jeju, Pangyo, Seoul] 21 2 [Jeju, Pangyo, Seoul, NewYork, LA, SanFrancisco, Seoul, Rome, Paris, Jeju, NewYork, Rome] 60 5 [Jeju, Pangyo, S programmers.co.kr 문제 설명 : LRU(Least Recently Used) 를 사용하여 cache 실행시간 구하기 ..

ArrayList(선형리스트)

import java.util.ArrayList; import java.util.Collections; //1. ArrayList public class test { //implements는 부모의 메소드를 반드시 오버라이딩(재정의)해야 한다. static class Person implements Comparable{ int n; String name; Person(int n, String name){ this.n = n; this.name = name; } @Override public int compareTo(Person o) { if(Integer.compare(this.n, o.n) == 1) { return 1; } else if(Integer.compare(this.n, o.n) == 0) ..

ALGORITHM/이론 2020.11.09

AWS EC2 Ubuntu 18.04 MySQL 설치

1. apt repository 업데이트 $ sudo apt update 2. MySQL Server root 비밀번호 설정 $ sudo mysql_secure_installation Validate password plugin 사용 여부 -> N 입력/ Y: 안전한 비밀번호 root 비밀번호 설정 Anonymous User 삭제 여부 -> Y 입력 외부에서 root 계정으로 접근을 허용할지 여부 -> Y 입력 Test DB 삭제할지 여부 -> Y 입력 privileges table을 reload 할지 여부 -> Y 입력 후 reload 3. 외부 접속을 위한 MySQL 설정 파일 수정 $ cd /etc/mysql/mysql.conf.d $ sudo vi mysqld.cnf i 입력 bind-addres..

Web/AWS 2020.10.28

[백준] 14889번 스타트와 링크

www.acmicpc.net/problem/14889 14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net 문제 설명 : 스타트 팀과 링크팀의 능력치의 차이의 최솟값 출력 문제 풀이: N명의 사람들을 스타트 팀과 링크 팀으로 나누면서, 각 팀 능력치 합의 차이를 최소로 구해야한다. 두 팀으로 나누기 위해서 N/2만큼 조합으로 뽑는다. team[] : S(능력치) 입력이 들어있다. mask[] : 스타트팀은 true, 링크팀은 false startsum, linksum : 각 팀 능력치 합 comb() : N/2 명을 뽑기 위한 조합 함수..

[백준] 14719번 빗물

www.acmicpc.net/problem/14719 14719번: 빗물 첫 번째 줄에는 2차원 세계의 세로 길이 H과 2차원 세계의 가로 길이 W가 주어진다. (1 ≤ H, W ≤ 500) 두 번째 줄에는 블록이 쌓인 높이를 의미하는 0이상 H이하의 정수가 2차원 세계의 맨 왼쪽 위치 www.acmicpc.net 문제 설명 : 빗물의 총량 구하기 문제 풀이 : arr 배열은 블록이 쌓인 높이를 담고 있다. 빗물이 고이는 조건(양 옆이 자신 보다 클 경우)을 만족시키기 위해, arr 배열을 반복해서 돌면서 해당 인덱스의 왼쪽에서 가장 큰 숫자를 left에 오른쪽에서 가장 큰 숫자를 right에 저장한다. 이후 빗물이 고이는 양(두개의 블록 중 작은 블록까지 빗물이 채워짐)을 구하기 위해 left 와 ri..

ALGORITHM 2020.10.24

반정규화

1. 반정규화 정규화된 엔티티타입, 속성, 관계를 시스템의 성능향상, 개발 운영의 단순화를 위해 모델을 통합하는 프로세스 장점: 모든 엔티티타입, 속성, 관계가 반드시 한 개만 존재하므로 데이터 값이 변질되거나 이질화 될 가능성이 없다. 단점 : 여러 테이블이 생성되어야 하므로 SQL 작성이 용이하지 않고 과다한 테이블 조인이 발생해 성능이 저하될 가능성이 높다. 장점: 여러 개의 테이블이 단순해져서 SQL 작성이 용이하고 성능이 향상된다. 단점 : 같은 데이터가 여러 테이블에 걸쳐 존재하므로 무결성이 깨질 수 있다. 2. 테이블 반정규화 1:1 관계의 테이블 병합 1:N 관계의 테이블 병합 수퍼/ 서브 타입 테이블 병합 수직 분할 (컬럼) 수평 분할 (행) 테이블 추가 3. 컬럼 반정규화 자주 조회하는..

DBMS/이론 2020.10.21