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이..
최근댓글