전체 글 139

c++ 입출력 최적화 방법

NHN 신입공채 코테 언어에 Python이 없다. C, C++, Java만 가능하여 빠르게 C++를 훑기로 했다. c++ 에서 cin, cout 보다 scanf, printf 가 더 빠르다는 것을 알고 있었다. 그런데 cin, cout 최적화를 시켜주면 어떤 경우에서는 scanf, printf보다 더 빠를 수 있다. int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin >> n; } 단 이 경우, stdio와 동기화를 false 시켰으므로 scanf, printf를 같이 쓰면 에러가 발생한다.

algorithm/c++ 2020.10.18

mysql server has gone away

job scheduler로 동작주기가 15시간인 모듈을 개발하였다. 서비스 올리고 나니 처음 동작할 때 무조건 "ERROR 2006 (HY000): MySQL server has gone away"가 났다. db 서버와 연결이 끊긴 거 같은데 구글링해보니 원인은 mysql 기본설정값과 연관이 있다. 1. max_allowed_packet = 16M insert, update문 등으로 인해 전송패킷 사이즈가 크면 발생한다. 쿼리 내용이 많아서 그런 것이므로 값을 늘려주면 된다. 기본값은 1M로 설정되어 있을 것이다. mysql을 docker로 운영하는 경우 my.cnf 파일에서 값을 변경하여 서버가 재시작되더라도 값이 반영될 수 있도록 하자. 2. wait_timeout = 28800 wait_timeou..

database/sql 2020.08.05

카카오블라인드/2020/가사검색

프로그래머스 이용 : https://programmers.co.kr/learn/courses/30/lessons/60060 처음에 for문 2개로 풀었더니 효율성 1,2,3번을 통과하지 못한다. 하위 소스가 그 내용이다. def solution(words, queries): result = [] """ queries 총 문자 개수, 맞춰야하는 문자 개수 맞으면 ans += 1 """ for q in queries: ans = 0 total_len = len(q) key = q.replace("?","") key_idx = q.find(key) for word in words: if len(word) != total_len: continue if key == "": ans+=1 continue idx = ..

algorithm/python 2020.07.27

tinyInt(1) 과 tinyInt(2) 차이

mysql schema에서 flag값을 저장하기 위해 tinyint(1) 를 사용하였다. 그러다 tinyint(2) 를 사용한 table을 보게 되어 이 둘의 차이점을 정리하려 한다. 결론부터 말하자면, ZEROFILL 옵션 사용 유무 차이가 있을 뿐 실제 저장공간 및 입력 가능 한계는 동일하다. - ZEROFILL INT의 괄호 옵션 기능은 ZEROFILL로, 숫자 값의 앞쪽에 0을 패딩할 것인지 설정하는 옵션이다. +------------+-------------+ | tinyint(1) | tinyint(2) | +------------+-------------+ | 3 | 03 | | 1 | 01 | | 10 | 10 | +------------+-------------+ 참고: https://s..

database/sql 2020.07.07

du와 df 용량 차이 날때

특정 프로세스가 해당 파일시스템을 과도하게 사용하는 경우 발생한다. du: commit된 size를 계산하여 출력 df: 프로세스가 사용중인 size 포함하여 출력 lsof 명령어로 어떤 프로세스가 메모리를 잡고 있는지 확인한다. ~$ lsof | grep 파일시스템명 위 명령어는 해당 파일시스템과 연관된 프로세스 리스트가 출력된다. 출력 결과에서 "SIZE/OFF" 가 비정상적으로 높은 프로세스를 확인하여 PID kill 하는 방법 등을 취할 수 있다. + fd leak 문제가 있을 수 있다! https://blog.daum.net/dhyi123/11755822 kernel에서 file descriptor leak 이 나는 경우 확인해야 할 사항. 일반적으로 process의 fd leak은 /proc/..

develop/linux 2020.04.27

알고리즘 문제 풀이 사이트

1. hackerrank https://www.hackerrank.com/interview/interview-preparation-kit 문제가 영어이고, 짧은 영어강의도 있다. input 코드는 이미 생성되어있어 함수만 작성하면 된다. 포인트로 틀린 케이스를 확인할 수 있다. https://www.hackerrank.com/dashboard 새로운 언어를 배울때도 좋을 것 같다. 코딩테스트 : 카카오계열 2. 프로그래머스 https://programmers.co.kr/learn/challenges 문제가 깔끔하다. 틀린 케이스를 확인할 수 없어 질문하기를 많이 이용하는 편이다. 코딩테스트 : 라인 3. leetcode https://leetcode.com/problemset/all/ 여기꺼 100문제 ..

algorithm/common 2020.03.16