일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 문자열을 정수로 바꾸기
- 정수 내림차순으로 배치하기
- Brainf**k 인터프리터
- 3954
- 단체사진 찍기
- 12906
- 124 나라의 숫자
- 가장 큰 정사각형 찾기
- 짝지어 제거하기
- 카카오2020 공채
- 투포인터
- 프로그래머스
- 2019 카카오 공채
- 큰 수 만들기
- 괄호 변환
- 2018 카카오 공채
- 17779
- 백준
- 17825
- programmers
- 라면공장
- 주사위 윷놀이
- 자연수 뒤집어 배열로 만들기
- 자바
- 게리맨더링 2
- java
- 카카오 2020 공채
- 시저암호
- 후보키
- 찾아라 프로그래밍 마에스터
- Today
- Total
목록CS (84)
기기
auto increment을 처음봤을 때 이름 그대로 키 값을 알아서 자동으로 올려주는 기능으로만 생각했다. 그런데 막상 사용하려니 동시 요청에 대해 auto increment는 어떻게 대처하는지 원리를 이해못했다. 여기저기 찾아보니 알아둬야 할 내용들이라 생각하여 정리한다 AUTO INCREMENT란 AUTO_INCREMENT 속성을 사용하여 새로운 행에 unique ID 생성 중복되지 않기 때문에 PK에 AUTO_INCREMENT를 많이 설정한다. CREATE TABLE animals ( id MEDIUMINT NOT NULL AUTO_INCREMENT, name CHAR(30) NOT NULL, PRIMARY KEY (id) ); INSERT INTO animals (name) VALUES ('d..
결론 MySQL 8.0 부터 INFORMATION_SCHEMA의 변경 정보는 24시간에 1번 반영된다. 상황 mysql AUTO_INCREMENT 관련 문서에서 sql문을 테스트하던 중 INFORMATION_SCHEMA의 auto_increment 값이 바뀌지 않았다. ALTER TABLE '테이블A' AUTO_INCREMENT = 1; 위와 같이 변경 후 INFORMATION_SCHEMA에서 조회해보니 AUTO_INCREMENT값이 변경되지 않았다. 하지만 '테이블A'에 값을 넣으면 변경된 auto_increment 값이 들어가는 것을 확인할 수 있었다. 이유는 INFORMATION_SCHEMA의 업데이트 속도는 24시간에 1번 반영된다는 것을 알게 되었다. 왜 INFORMATION_SCHEMA 데이터..
투 포인터 배열에서 이중 for 문으로 O(N^2) 에 처리되는 작업을 2개 포인터의 움직임으로 O(N) 으로 해결하는 알고리즘 리스트에 순차적으로 접근해야 할 때 2개 점의 위치를 기록하며 처리 이 포인터는 c의 포인터가 아닌 가리키는 역할 머지소트에서 정렬되어 있는 두 리스트의 병합의 기초가 되기도 함. 정렬된 2개 리스트를 포인터를 이용해서 하나의 정렬된 리스트 완성 투 포인터는 블로그 설명들을 보면 구현이 조금씩 다양한 것을 알 수 있는데, 이는 포인터와 구간에 대한 문제정의를 맞게 했으면 구현을 어떻게 했던지 간에 풀 수 있는 것을 알 수 있다. 초기 단계 2개 포인터는 리스트에서 시작 s, 끝 e 를 의미 s와 e는 첫 번째 원소를 가리킴 초기에 s와 e가 동일 원소를 가리키기 때문에 문제에 ..
https://www.acmicpc.net/problem/14891 14891번: 톱니바퀴첫째 줄에 1번 톱니바퀴의 상태, 둘째 줄에 2번 톱니바퀴의 상태, 셋째 줄에 3번 톱니바퀴의 상태, 넷째 줄에 4번 톱니바퀴의 상태가 주어진다. 상태는 8개의 정수로 이루어져 있고, 12시방향부터www.acmicpc.net 핵심1. call by reference가 아닌 call by value로 dfs 값 전달dfs의 종료 조건들을 상단에 두기 위해서 문제 흐름과 조금 순서가 바뀌었다. 예를들어 처음 A 톱니바퀴 회전 요청 -> A 톱니바퀴 회전 -> 맞물린 옆 B 톱니바퀴 회전 요청 -> B톱니바퀴가 A톱니바퀴와 맞물린 극이 다른지 체크 -> ... 와 같은 순서로 구현했다. 그런데 이 때 'B톱니바퀴가 A톱니..
필요하지 않은 디비 값까지 조회되는 운영이슈가 있었다. db 쿼리문 조회 시 검색조건에서 예외케이스 있음을 알게된 경험이 있다. 로그부터해서 api 까지 거꾸로 따라가다가 like 절에서 escape 처리가 필요했던 부분이다. 언더바( _ )가 포함된 이름을 조회 시 엉뚱한 결과가 조회될 수 있다. WITH temp AS ( SELECT 'STEVEN_KING' AS ename FROM dual UNION ALL SELECT 'StevenMarkle' AS ename FROM dual ) SELECT * FROM temp WHERE ename LIKE '%_%' 언더바(_)는 LIKE에서 사용하는 패턴 문자이기 때문에 해당 문자를 직접 조회할 수가 없다. 언더바(_)가 존재하는 이름만 검색하였지만 결과는..
맥에서는 homebrew를 이용하면 mysql 설치는 간단하다. homebrew를 설치해두면 다른 프로그램을 설치할 때도 편리하게 설치하고 삭제할 수 있어서 좋다. 1. mysql 설치 $brew install mysql 2. 보안 설정 root 사용자 비번, 원격접속, test 데이터베이스 등 보안관련 설정한다. $mysql_secure_installation 3. mysql 기동 $brew services start mysql 4. mysql 접속 root 권한자로 접속하고 password는 위 2번에서 설정한 값으로 엔터치면 된다. $mysql -u root -p 5. mysql 종료 $brew services stop mysql * mysql 삭제 방법 brew services stop mysql..
address space 컴퓨팅에서 주소 공간(住所 空間)은 물리 메모리나 가상 메모리, 레지스터, 네트워크 호스트, 주변 기기, 디스크 섹터, 다른 논리적 실체나 물리적 실체에 대응되는 주소의 범위를 정의한 공간(집합)을 말한다. 예를들어, 프로세스의 주소 공간은 메모리에 적재된다. 처럼 생각할 수 있다. 주소 공간이 메모리랑 무슨 차이일지 생각했는데, 주소 공간은 개념적으로 주소들의 공간이고, 메모리는 말 그대로 데이터를 담는 곳 virtual(logical) address space VS virtual memory 가상 주소 공간 프로세스가 생성되며 독립적으로 할당받는 주소들로, 다양한 메모리 기법으로 물리적 메모리와 매핑된다. 가상 메모리 멀티 프로그래밍 환경의 효율을 위해 프로세스 메모리가 램뿐..
데드락이란? - 둘 이상의 프로세스에서 자기 자원은 놓지 않고(lock) 다른 프로세스가 자원을 내놓기를 바라는 상태 (wait) - 결과적으로 아무것도 완료되지 못해 무기한 기다리게 된다. - '교착 상태'라고도 부름 - 한정된 자원을 여러 곳에서 사용하려고 할 때 발생 데드락이 일어나는 경우 프로세스1과 2가 자원1, 2를 모두 얻어야 한다고 가정해보자 t1 : 프로세스1이 자원1을 얻음 / 프로세스2가 자원2를 얻음 t2 : 프로세스1은 자원2를 기다림 / 프로세스2는 자원1을 기다림 현재 서로 원하는 자원이 상대방에 할당되어 있어서 두 프로세스는 무한정 wait 상태에 빠짐 → DeadLock 멀티 프로그래밍 환경에서 한정된 자원을 얻기 위해 서로 경쟁하는 상황에서 발생할 수 있다. 데드락 발생 ..