본문 바로가기

c++6

[0612] 알고리즘 1992. 쿼드트리 과정 자체는 어제 풀었던 문제와 거의 흡사했다. 주어진 수의 배열을 4분할하고 각각의 분할에 대해 모든 항목이 똑같은지를 검사한 후, 똑같지 않으면 다시 재귀를 통해 분할을 하는 방식. 대신 압축한 결과값을 괄호로 묶인 문자열로 표현해야 하기 때문에 string 헤더 파일을 사용해서 문자열을 만들었다. #include #include #include #include int square[65][65]; std::string zip; void Divide(int col, int row, int side); int main() { std::cin.tie(NULL); int n; std::cin >> n; for (int i = 0; i < n; i++) { for (int j = 0; j .. 2021. 6. 13.
[0608~0609] 알고리즘 맨날 뭔가의 기법을 이용한 문제를 풀어보겠다고 설치지만 오늘(06.09)도 그러지 못했다. 1051. 숫자 정사각형 브루트 포스 문제. 다른 건 다 괜찮았고 최댓값 구하는 함수가 algorithm 헤더에 있다길래 그거 써봤다. 조만간 이거 구성도 살펴봐야지 싶었음. #include #include #include int main() { std::cin.tie(NULL); int n, m, maxSq = 1; std::cin >> n >> m; //n x m 크기 직사각형 입력받기 std::vector square(n, std::vector (m, 0)); for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { scanf("%1d", &square[i][.. 2021. 6. 10.
C++ STL - 연관 컨테이너 저번에 이어서 이번에는 연관 컨테이너에 대해 간단히 살펴봤다. 연관 컨테이너(Associative Container) 연관 컨테이너에 대해서 Key-Value의 구조를 갖는다고 언급한 적이 있었다. 그렇기에 연관 컨테이너는 시퀀스 컨테이너와 달리 특정 키 값을 통해 그 키에 해당하는 값을 반환하는 역할을 수행한다. 이러한 Key-Value 구조로 연관 컨테이너가 제공할 수 있는 정보값은 다음과 같다. 특정 키가 컨테이너에 존재 하는가? 특정 키에 대응하는 값(value)이 무엇인가? 위키피디아에 의하면 연관 컨테이너에는 set, multiset, map, multimap 등이 있다고 한다. 이 중에서도 1번 질문에 대답할 수 있는 기능을 가진 컨테이너는 set과 multiset, 2번 질문에 답할 수 있.. 2021. 6. 8.
C++ STL - 시퀀스 컨테이너 C++로 알고리즘을 하겠다고 생각한 후부터 늘 STL을 살펴봐야지, 살펴봐야지 하고 드디어 살펴보게 되었다. 실제로 알고리즘 문제를 풀 때 얼마만큼 적용해볼 수 있느냐가 문제일텐데... 우선은 아는 것이 중요하니 개념부터. 언제나 늘 보던 그 씹어먹는 C++강좌와 위키피디아, 그리고 일부 C++관련 게시물을 참고했다. C++ STL(Standard Template Library) 해석하면 'C++ 표준 라이브러리'라고 불리는 이 라이브러리는 4가지의 라이브러리로 이루어져 있다고 한다. 알고리즘 컨테이너 반복자 함수자 보통 STL이라고 하면 위의 3개(알고리즘, 컨테이너, 반복자) 위주로 사용되는 듯 하다. 실제로 알고리즘 문제 풀이를 살펴볼 때도 많이 봤던 익숙한 얼굴들이고... 그중에서도 오늘 훑어본 .. 2021. 6. 4.
C++ 2일차 어제 미처 (시간이 너무 오래 걸려서) 클래스와 오버로딩에 대한 내용을 쓰지 못했다. 오늘 조금 더 생성자와 소멸자에 대해 봤기 때문에 적기로. (※ 개인 정리를 위한 것이므로, 이해한 내용 생략다수 + 불친절함 주의) 객체 객체지향 프로그래밍의 핵심적인 개념. 일단은 그 개념을 "현실 세계에 존재하는 어떠한 개념들을 표현하기 위한 데이터들의 모음(구조)" 라고 생각하고 있다. 객체지향 프로그래밍을 학습할 때 있어, 중요하게 배우는 특징들이 몇 가지 있다(n년 전 자바 교과목에서 열심히 공부했었다). 여기서 되새겨보는 특징은 아래와 같았다. 추상화(Abstraction) : 현실의 것을 컴퓨터의 세계로 가져오는 과정에서, 불필요한 것을 없애고 중요한 것만을 남기는 과정이다. 현실 세계의 정보는 제대로 표.. 2021. 4. 30.
C++ 1일차 쇠뿔도 단 김에 빼랬다. (※ 개인 정리를 위한 것이므로, 내용 생략다수 + 불친절함 주의) 1장 C++은 개인적으로는 흥미로운 언어다(배우는 것이 즐거운 것과는 별개로). C언어와 생긴 것은 비슷하면서도 C가 갖고 있지 않은 '객체 지향'이라는 특징을 갖고 있다는 점이 무엇보다 그러하다. 부족하다만 어쨌든 C를 해보았기에 C++를 처음 잡았을 때의 느낌은 정도의 기분이었던 것 같다. 무언가... 새롭다. 많다. Visual Studio 2019에서 C++사용 C언어를 처음 배울 때도 Visual Studio를 사용하여 학습을 진행했었는데, 이번에도 그렇게 진행한다. 다만 내 Visual Studio는 얼마 전에 새로이 만난 2019버전이고, 2019버전에서 C++ 프로그래밍을 진행하기 위해서는 별도의 .. 2021. 4. 28.