string의 c_str 함수는 제가 string을 C style의 문자열로 바꿀 때 많이 썼던 함수입니다. 이 메서드는 const char *를 리턴합니다. 내용이 변경되면 안 되는 제약 조건을 가진, char형 포인터를 리턴합니다. 일단, string의 구조에 대해서 간략하게 설명을 하고, c_str()에 대한 설명을 하도록 하겠습니다. Stri uffer, StringBuilder, C++의 String 등이 있습니다. C++의 스트링 클래스에는 capacity와 size가 있는데요. 이는 동적 배열이 있는 Class는 보통 이 두 메서드를 구현을 많이 하는 편입니다. append 100만번 하면 시간이 오래 걸리는지 안 걸리는지 체크만 해도 되고요. 실제로 내부 구조를 보면, string 클래스 ..
전체 글 검색 결과
구현 카데고리 7번째 글입니다. 오늘은 상태를 어떻게 나타내는지에 대한 이야기를 해 보도록 하겠습니다. 켜졌다와 꺼졌다. 이것은 각각 1과 0으로 표현이 가능합니다. 울타리가 있다. 울타리가 없다. 또한 1과 0으로 표현이 가능합니다. 즉, 어떠한 상태가 2개만 있을 때, 우리는 bit operation을 이용할 수 있습니다. 이걸 어떻게 써야 할까요? 예제를 다소 어려운 문제로 잡아보겠습니다. 백준 1200번, BOI 2008 #5번 문제인 기상 예측 문제를 봅시다. 이 문제는 가로선 n개와 세로선 m개로 영역을 적절히 나눌 때, 부분합의 최대를 최소로 하는 문제입니다. 예를 들어, 2 by 3짜리 영역에, 가로선 1개, 세로선 1개를 그을 수 있다고 해 봅시다. 그러면 이렇게 그을 수 있습니다. 이 ..
Heap, 다른 말로 우선 순위 큐 알고리즘을 배우기 전에, 완전이진트리와 포화이진트리에 대해서 짚고 넘어가도록 하겠습니다. 트리에 대해서 이론적으로만 설명하면 재미가 없으니, 나올 때 마다 설명을 하는 게 맞는 듯 싶어요. 이진 트리라고 하면, 자식의 갯수가 최대 2개인 Tree를 의미합니다. 이 둘은, 균형 트리라는 공통점이 있어요. 다른 점은 무엇일까요? 이 둘을 영어로는 각각, Complete Binary Tree, Perfect Binary Tree라고 이야기를 합니다. 당연하게도, 포화 이진 트리는 완전 이진 트리이기도 합니다. 먼저 포화 이진 트리부터 그려봅시다. 먼저 잎이란, 자식이 없는 노드를 의미해요. 단말 노드라고 많이 이야기를 합니다. 일단 이들의 레벨이 모두 같다? 깊이가 모두 같..
3개월만에 쓰는 명령어 시간입니다. ln 명령어는 저번에, 하드링크와 심볼릭 링크를 언급했을 때, 언급을 한 적이 있었습니다. [관련글] [리눅스/명령어] - 하드 링크 vs 심볼릭 링크 : 어느 것을 가리키는가? 복습도 다시 한 번 해 보시는 것도 괜찮을 듯 싶네요. 링크에 대해서 조금 더 보는 것도 괜찮고요. -s를 붙이면 윈도우에서 말하는 '바로가기'를, 그렇지 않으면 하드 링크를 생성합니다. 예제를 보겠습니다. 먼저, 파일이 이렇게 있어요. 저는 -i 옵션을 주어서 inode 번호만을 출력을 했습니다. 1.txt의 번호와, 2의 번호가 같아요. 282861로요. 그러면, 1.txt와 2는 같은 파일을 가리키는 것이라고 봐도 무난합니다. alias라고 생각하시면 좋겠습니다. 이것을 그림으로 그리면 ..
아주 옛날에 group by에 대해서 했었습니다. 이것이랑 짝을 맞추는 절이 having 절인데요. 사실 이것이랑 where 절이랑 헷갈리기가 꽤 쉬운 듯 싶습니다. group by는, 어떠한 필드의 값을 기준으로 그룹화를 시키는 것이라고 했습니다. [관련글] [코딩/Sql] - mysql group by 절 : 그룹별로 나눠서 집계한다. 꽤 오래전에 썼던 글이군요. 혹여나, group by 절을 모르신다면 보고 오셔도 좋을 듯 싶습니다. having를 알기 위해서는, 비슷하게 생겨먹은 where 하고, having의 해석 순서를 알 필요가 있습니다. 사실, 더 중요한 건 해석 능력입니다. 국어 영역인 셈입니다. 먼저 테이블의 필드가 이라고 해 봅시다. 이 때, 우리는 가격이 25원 이상인 물건이 2개 ..
최근댓글