priority_queue는 코딩 테스트에서 꽤 빈도 높게 출제되고 있는 자료 구조 중 하나입니다. 물론, set이나 map도 많이 보이긴 합니다. 여태까지 코딩 테스트 문제들을 쭉 보았을 때, 우선 순위 큐, 줄여서 pq를 사용해서 푸는 문제가 꽤 많이 등장하였습니다. 자료구조나, 알고리즘 시간에 반드시 한 번 쯤은 짚고 넘어가는 것을 물어보았다는 것은, 기본을 보았다는 소리입니다. 이것은 한 마디로 top 메서드를 호출했을 때, 우선 순위가 가장 높은 것을 꺼내는 구조입니다. 그것이 전부입니다. 하지만, 그러한 작업과, 삽입, 삭제가 O(log)가 보장됩니다. 왜 그런지는 자료 구조 시간에 다시 언급해 드리도록 하겠습니다. 일단, 오늘은 log라는 것만 머릿속에 넣으시면 되겠습니다. 보통 저는 pq를..
분류 전체보기 검색 결과
저번 SQL 함수 시간에 length 함수를 배웠습니다. 무엇이였는지 기억하시나요? string이 몇 바이트를 차지하는지를 돌려주는 함수였습니다. C언어의 strlen과 같이 말입니다. 그러면, character set이 UTF8이였는데, "조가희"라는 것이 있다면, 어떤 결과가 나올까요? 3이 나오는 게 아니라, 9가 나옵니다. UTF8은, 한글 1글자 당 3byte만큼 차지하기 때문입니다. C언어의 strlen과 속성이 같다고 볼 수 있는데요. 이것도 역시, byte 단위로 리턴을 합니다. 실제로 있는 글자의 수가 리턴이 되지 않음을 알 수 있어요. 만약에, "조가희멍멍" 이라는 string을 받았을 때, 글자 수가 리턴이 되었다면 5가 return 되었을 겁니다. 하지만, 5가 아닌 다른 수를 출력..
a>b라면, -ab이면 -ab(2)>...>b(n)을 만족합니다. 그러면 -b(1)
c++의 algorithm 헤더에는, 두 변수를 바꾸는 swap 메서드가 있습니다. 두 수를 바꾸는 swap 함수를, 구현해 봅시다. 저번 시간에 배운 포인터도 복습해 볼 겸 말입니다. Main 함수에 a와 b가 할당되어 있습니다. 우리는 함수를 통해서 이 둘을 바꿔보려고 합니다. 그런데, 함수로 이 둘을 깡으로 넘기기에는, 힘들어 보입니다. 왜냐하면, 정수형으로 그냥 복사해 버리면, 다음과 같이 별개의 공간에 매개 변수가 생성이 되기 때문입니다. 그러면 우리는, Main에 있는 a의 주솟값과, b의 주솟값을 넘기자는 생각을 할 수 있습니다. 이 둘의 주솟값을 각각 0x80번지, 0x84번지라고 한다면, 다음과 같이 복사하면 됩니다. 이러한 주솟값을 저장할 수 있는 변수는 포인터 변수입니다. 정수형 포인..
안녕하세요. 백준 chogahui05입니다. 'A'를 ascii로 표현한다면 1byte로 표현이 됩니다. 그런데, '가'와 같은 것들은 ascii로 표현하지 못합니다. java에서 문자 인코딩 시간에 이야기를 조금 했었습니다. utf-8 인코딩 형식에서는 3byte로 표현이 된다고. utf-16은? 2byte였어요. 실제로, mysql에서 length는 문자열의 byte 크기를 리턴해 주는데요. 예제를 보면서 이해해 보도록 하겠습니다. 먼저 table 2개를 생성하겠습니다. 각각 utf8_table과 utf16_table입니다. utf8mb4는 아래 글에서 충분히 설명을 드렸습니다. [관련글] utf8mb4는 대체 무엇일까요? 이모티콘을 넣을 수 있었던 것이 utf8mb4, 그렇지 않았던 것이 utf8이..
최근댓글