Algorithm/C++
-
[백준][C++] 5052. 전화번호 목록Algorithm/C++ 2020. 10. 2. 04:23
string 형태의 전화번호 목록이 주어지면 해당 목록이 일관성 유무를 반환하는 문제이다. 여기서 일관성이 있다는 것은, 한 번호가 다른 번호의 접두어인 경우가 없다는 뜻이다. 이 문제를 선택한 이유는 트리 문제였기 때문이다. 그래서 웬만하면 트리로 풀고 싶었는데... 내 머리로는 이진트리밖에 생각이 나지 않아서 이걸로 어떻게 이 문제를 풀어야할지 감이 안잡혔다. 그래서 일단은 쉽게 정렬로 풀었다. 전화번호 목록을 오름차순으로 정렬한 다음, 앞에서부터 번호들을 비교해 이전 번호가 다음 번호의 접두어가 되는지 일일이 확인했다. 정렬만 하면 쉽게 해결됐던 문제... [정렬로 해결한 코드] // 5052_전화번호_목록 using namespace std; #include #include #include #in..
-
[STL] vectorAlgorithm/C++ 2019. 11. 5. 20:12
벡터(vector)는 가변 배열을 만들 때 사용하는 STL의 컨테이너 라이브러리이다. 자동으로 메모리가 할당되는 배열이라고 생각하면 된다. [벡터의 특징] 1. 가변적인 크기 크기가 선언 시에 고정되는 배열과는 달리, vector는 크기가 동적으로 변한다. 따라서 저장할 데이터의 개수를 미리 알 수 없다면 vector을 사용하는 것이 좋다. 2. 중간에 데이터를 삽입/삭제할 수 없다. 벡터는 배열처럼 데이터를 순차적으로 저장하기 때문에 중간에 데이터를 삭제하거나 삽입하는 것이 번거롭다. 따라서 벡터는 가장 뒤에 있는 데이터를 삭제 및 삽입하는 경우에 사용하는 것이 좋다. 3. 저장할 데이터 개수가 많은 경우 검색이 용이하지 않다. 데이터를 순차적으로 저장하기 때문에 많은 데이터를 저장할 경우 검색 속도가..
-
[STL] iostream, std, 입출력(cin, cout)Algorithm/C++ 2019. 11. 5. 19:34
C++에서 사용하는 표준 입출력 개체인 cout과 cin을 사용하려면 iostream 헤더파일을 include하여 std 네임 스페이스를 사용해야 한다. 1 2 #include using namespace std; 1. iostream STL(Standard Template Library)에서 제공하는 클래스 중 하나로, 데이터 입출력 시에 사용하는 클래스이다. 2. namespace namespace는 모든 식별자(변수, 함수, 형식 등의 이름)가 고유하도록 보장하는 코드 영역이다. 두개 이상의 독립된 코드가 함께 사용될 때 서로 이름이 충돌하는 문제를 방지하기 위해 namespace 키워드를 통해 독립된 namespace를 선언할 수 있다. 3. std 원래 C++ 설계 시에는 C++ 라이브러리의 모..