처음 백준을 하시다 보면, 출력하실 때, 개행을 출력하기 위해서 endl을 많이 쓰는 실수를 합니다. 이게 어떤 문제가 있는지 공식 문서를 하나 하나 해석해 보면서 알아보겠습니다. 먼저 링크를 보시면 아래 문구가 눈에 보입니다. 개행을 stream에 insert를 한 다음에, stream을 flush 한다고 해석할 수 있습니다. 그러면, 이게 얼마나 시간을 많이 먹는 작업일까요? 간단하게 테스트 프로그램을 하나 만들어 보겠습니다. 123이라는 문자열을 2000만번 출력하는 프로그램입니다. 그리고, 이 작업을 하기 전에 시간을, 한 후에 시간을 출력함을 알 수 있는데요. 간단하게 시간을 측정하기 위해서, 이 방법도 나름 쓸만합니다. 저는 ex를 실행시켜서 출력된 결과를 1.txt에 넣겠습니다. 그리고, 1..
전체 글 검색 결과
리눅스의 history 명령은 꽤 자주 쓰곤 합니다. 그런데, 그것만 쓴 적은 없고, 보통 다른 명령어들과 pipe 해서 많이 쓰곤 했습니다. 그것에 대해서 간단하게 보도록 하겠습니다. 먼저, echo $SHELL을 입력해 봅시다. 저 같은 경우에는, /usr/bin/zsh가 출력이 되는데요. 이는 제가 oh my zsh를 사용하기 위해서 zsh를 깔았기 때문입니다. 일단, echo $HISTFILE을 입력해 보도록 하겠습니다. 그러면, /home/cho/.zsh_history가 나올 건데요. 이는 history가 어디에 저장되는지를 나타내는 변수입니다. 여기에서는 제가 있는 경로의 .zsh_history에 히스토리가 차곡 차곡 쌓이고 있다고 하는군요. 제가 zsh에서 쳤던 명령어들이 저장이 되어 있습니..
데이터 베이스를 다루실 때, User를 관리하는 것도 꽤 중요한 일 중 하나입니다. mysql에서 유저를 어떻게 추가하는지 간단하게만 짚고 넘어가 보겠습니다. 8버전 들어오고 나서 부터, 인증 방식도 상당히 많아졌는데, 이들에 대해서는 천천히 알아보도록 하겠습니다. 당연하게도, 공식 레퍼런스 문서인 링크에 설명이 잘 되어 있습니다. 이것을 기반으로 간단하게 실습만 해 보도록 하겠습니다. 레퍼런스에 따르면, mysql.user에 무언가 특별한 정보들이 저장이 되어 있다고 합니다. 이 중에서 여기서 다룰 중요한 정보들만 짚고 넘어가 보겠습니다. Host와 User, PlugIn을 보겠습니다. User는 유저 이름이고, Plugin은 무엇인지는 잘 모르겠습니다만, caching_sha2_password가 눈에..
이 글을 읽기 전에 잘못 구현된 다익스트라 글을 보고 오시는 것 추천드립니다. 저는 그 글을 읽으셨고, 그 글에 나온 저격 데이터가 어떠한 원리로 작성되었는지 30% 정도 이해했다는 전제 하에 진행하도록 하겠습니다. 보통 이 알고리즘을 구현하실 때 Priority Queue를 이용하는 경우가 많습니다. 저는 그것을 기준으로 작성하였습니다. min_cost와 where_is_from, visit와 con이 있습니다. 이 중에서 con은 graph를 구축하는데 쓰이는 자료구조 정도로 생각하시면 됩니다. C++의 STL에서 vector con과 같습니다. min_cost를 inf로 초기화 합니다. 그리고, where_is_from을 -1로, visit를 false로 초기화를 합니다. 다음에 pq에 시작점을 넣..
리눅스에서 바로가기가 바로가기를 가리키고, 또 바로가기가 또 바로가기를 가리키고, 이런 식으로 들어가는 경우가 있습니다. 이 경우에 실제 파일이 어느 경로에 있는지는 어떻게 찾으면 될까요? 먼저, which javac를 쳐 보겠습니다. 그러면 이것은 /usr/bin에 있는 javac 명령어를 쓴다고 합니다. java는 /usr/bin에 있는 java 명령어를 쓴다고 하는군요. 글쎄요. 잘 모르겠으니, 일단 /usr/bin에 들어가서 이들에 대한 정보를 조회해 보도록 하겠습니다. 조회를 해 보니, 둘 다 /etc/alternatives에 있는 특정한 명령어를 가리키고 있음을 알 수 있어요. 바로가기인 셈입니다. 해당 경로에 가서, java와 javac에 대한 정보를 보도록 하겠습니다. 아. 또 링크로 연결..
최근댓글