저는 string을 쓸 때, char *형으로 바꾸고, string.h에 있는 문자열 함수를 주로 썼습니다. 그런데, 이것도 생각보다 귀찮더라고요. 이번 시간에는 의 find 함수에 대해서 알아보도록 하겠습니다. 레퍼런스에 보면 꽤 많은 원형이 있는데, 사실 둘만 알면 크게 어렵지 않아요. size_t find(const string &s|const char *s|char ch, size_t pos = 0); 첫 번째 인자로 string을 받거나, char형 포인터, 그러니까 문자열을 받거나, 문자 하나를 받습니다. 2번째 인자로 어느 위치에서부터 찾을 건지를 명시를 하는데요. 간단하게 말하면, string으로부터, 패턴이 매치되는 최초 위치를 찾는 함수입니다. 예제 프로그램을 보겠습니다. string이..
레퍼런스/예제 검색 결과
java의 toString 메서드는, 객체의 정보를 리턴하는 역할을 합니다. 사실 이 부분에 대해서 저는 별로 중요하게 생각을 하지는 않았습니다. 이걸 보면 아직도 멀었다는 생각이 듭니다. 하여튼, Object의 정보는 언제 볼까요? 당연하게도, 디버깅을 할 때 어디서 잘못되었는지 보기 위해서 볼 겁니다. 기본적으로, 자바에서, 최상위 부모는 Object입니다. 따라서, 클래스에 toString이 override가 되어 있지 않으면, Object에 있는 toString을 부르게 됩니다. 이 함수를 봅시다. 그러면 뭔가 getClass().getName()에 @을 concat를 하고, hashCode값을 16진수화 시킨 것을 또 concat 한다는 것을 알 수 있어요. myClass 클래스를 선언하였습니다..
priority_queue는 코딩 테스트에서 꽤 빈도 높게 출제되고 있는 자료 구조 중 하나입니다. 물론, set이나 map도 많이 보이긴 합니다. 여태까지 코딩 테스트 문제들을 쭉 보았을 때, 우선 순위 큐, 줄여서 pq를 사용해서 푸는 문제가 꽤 많이 등장하였습니다. 자료구조나, 알고리즘 시간에 반드시 한 번 쯤은 짚고 넘어가는 것을 물어보았다는 것은, 기본을 보았다는 소리입니다. 이것은 한 마디로 top 메서드를 호출했을 때, 우선 순위가 가장 높은 것을 꺼내는 구조입니다. 그것이 전부입니다. 하지만, 그러한 작업과, 삽입, 삭제가 O(log)가 보장됩니다. 왜 그런지는 자료 구조 시간에 다시 언급해 드리도록 하겠습니다. 일단, 오늘은 log라는 것만 머릿속에 넣으시면 되겠습니다. 보통 저는 pq를..
생각보다 상당히 많이 쓰는 함수 중 하나는, java의 substring 함수입니다. 어떻게 쓰는 것인지 봅시다. String substring(int s); String substring(int s,int e); 첫 번째 함수는 시작 위치만 가지고 있어요. 위치 s에서부터, 끝까지 잘라낸 문자열을 리턴합니다. 2번째 메서드는, 시작 위치와 끝 위치를 가지고 있는데요. s에서부터 e-1까지 잘라낸 문자열을 리턴합니다. 예제 하나를 보고, 실생활 예제를 보도록 합시다. 5번째 줄에서, 문자열 "chogahui05"을 선언했습니다. 그러면, 메모리에 요렇게 할당이 될 거에요. pool에 "chogahui05"가 들어가 있습니다. 먼저, s1.substring(3)을 호출했어요. 그러면, 3번째 인덱스부터 끝..
오늘은 ps에 심심하면 많이 등장하는 '문자열을 숫자로 바꾸는' 함수에 대해서 알아보도록 하겠습니다. 이건 구현 문제를 풀다 보면, 정말 심심하면 하나씩 툭 튀어나옵니다. 보통 저는 sscanf로 문자열을 숫자로 convert를 하고, 역변환을 할 때에는 sprintf를 쓰는 편입니다. 그런데 사실, atoi 정도는 알아두셔도 크게 나쁘지는 않을 듯 싶네요. int atoi(const char *pat); pat을 받아서, 숫자로 변환을 해 줍니다. 당연하게도 변환을 할 수 없는 경우에는 0이 리턴이 되는데요. "0"을 atoi한 결과와 구분이 되지 않기 때문에 주의해야 합니다. 기본 예제를 보도록 하겠습니다. 7번째 줄에, 두 개의 문자열을 입력받았습니다. 각각 "-27"와 "3"을 입력했습니다. 그 ..
최근댓글