오늘은 중복된 결과를 제거하기 위해 mysql에서 많이 써먹는 distinct 절에 대해 알아보도록 하겠습니다. world에서, country 테이블을 생각해 봅시다. 나라는, Continent라는 컬럼도 포함할 겁니다. 예를 들어, 아시아, 유럽, 북아메리가 등등. country에서, Continent만 뽑아 봅시다. 그러면 쿼리는 위와 같이 작성하면 됩니다. 그런데, 이것은 country에 있는 레코드를 모두 뽑아냅니다. 물론, 속성은 Continent만 뽑아내겠지만요. 예를 들어서, 영국과 프랑스가 있다면, "Europe" 이라는 것은 2번 이상 뽑힐 겁니다. 그런가요? 저는, country 테이블에 있는 나라들이 속해있는 대륙의 갯수만 알고 싶습니다. 즉, Europe이 2번 나온다면 1번만 세야..
전체 글 검색 결과
사실, 이런 류의 기능을 하는 함수는 구현을 해야 할 일이 있을 겁니다. 여기에서는 optimize 생각 안 하고, 어떻게 빠르게 구현을 할 지, 패턴 정도만 이야기 해 보도록 하겠습니다. 3 종류의 쿼리가, Q개 들어온다고 생각해 보겠습니다. 이 때, insert 하는 위치와, delete 하는 위치 모두는 vaild 하다고 생각해 봅시다. 먼저, 구조체를 하나 정의하기 전에, 어떤 구조가 적합한지 먼저 생각해 봅시다. 사실, 적절한 자료구조가 있습니다. i번째 위치를 빠르게 찾는다. [s, e]번째 위치에 있는 원소 item들을 모두 delete 하는 것 또한, s번째 item을 찾고, e번째 item을 찾기만 하면 됩니다. 그러면 kth를 빠르게 찾을 수 있는 구조면 좋은데요. 그 중 하나는, sk..
fflush(stdin) 정도는 책을 보시면서 한 두번쯤은 보셨을 거에요. 가끔, 왜 이 함수를 썼는데 동작을 하지 않느냐. 는 질문도 더러 받아본 적이 있습니다. 원형은 다음과 같습니다. 하도 많이 언급이 되다 보니, 그냥 안 보고도 이 함수를 쓰시는 분들이 적지 않게 계실 듯 싶기도 합니다. 코드포스 interactive 문제를 많이 보셨다면, fflush 정도는 많이 써 보셨으리라 생각이 드니, 사용법은 생략해도 무난할 듯 싶습니다. 그런데, 링크에서 보면, 이런 문구가 있습니다. 인풋 스트림에 대해서는, 동작이 정의되지 않는다고 설명이 되어 있습니다. 이것 하나만으로 답변이 끝났네요. stdin은 표준 입출력을 의미합니다. 이것 또한 input과 관련된 것입니다. 따라서, 동작이 정의되지 않고, ..
fwrite, fread, fgets. 이 셋의 공통점은 무엇일까요? 링크의 설명에서 보면, 공통적으로 stream 이라는 것이 들어가 있어요. 아. 듣기만 해도 어려워 보입니다. 그리고 stream에 대해서, 공식 문서의 io library에 대한 링크를 보면, 아래와 같은 문구가 있다는 것을 알 수 있습니다. 쉽지 않아 보이는군요. 차근 차근 생각해 봅시다. 우리가 scanf 함수로, "abcde" 라는 것을 입력받았다고 해 봅시다. 그러면, 키보드로부터 받은 "abcde"를 프로그램 A에다가 넘겨줄 겁니다. 그러면 keyboard에서 A로 흘러갔다는 게 조금 와 닿나요? 반대로, "chogahui"를 FILE B에다가 쓴다고 해 봅시다. 그러면 어떻게 해야 하나요? "chogahui"가 A에서 fi..
Thread에서, stop, suspend, resume, destroy는 권장하지 않는 함수라는 것은 알고 계실 겁니다. 이 중에서, 오늘은 중간에 있는 두 메서드인 suspend랑 resume에 대한 이야기를 먼저 해 보도록 하겠습니다. 먼저 이 그림은 stop을 할 때에도 그려놓고 있는 것이 좋겠습니다. 여기서 중요한 것은 resume의 대상이, suspend된 상태에서만 쓸 수 있습니다. 이는 링크에 나온 이 문구를 보면 대략적으로 알 수 있습니다. solely라는 말은, 단지라는 부사입니다. solo랑 비슷한 어감일지도 모르겠어요. 영어를 잘 못해서, 정말 그런지는 잘 모르겠습니다. 혹이 이에 대해 아시는 분 있으면 댓으로 알려주시면 감사하겠습니다. 어찌 되었던 문맥상, suspend를 썼을 때..
최근댓글