본문 바로가기

c++831

[알고리즘] 재귀함수(recursion function) 개인 공부 후 자료를 남겨놓기 위한 목적이므로, 생략되거나 오류가 있을 수 있음을 알립니다. 설명에 대한 지적은 언제나 환영입니다. :) 재귀함수 들어가기에 앞서. 재귀함수가 무엇인지 알아보기 전에, 이 유튜브 영상을 먼저 보고 와보자. 그저 4시간 동안 의미없는 반복되는 영상으로 보일 것이다. 이 영상이 무엇을 의미하는지 이제 알아보도록 하자. 1. 재귀함수란? 재귀함수란 무엇일까? 국어사전에서 재귀 란 을 의미한다. 따라서 재귀 + 함수 이므로 설명 그대로 함수내에서 자기 자신을 불러 작업을 수행하는 함수를 의미한다. 다음과 같은 함수가 있다고 하자. 이 recur() 함수 내에서 recur를 다시 부르면 어떻게 될까? 어려울게 없다. 다음과 해당 함수안에서 자기 자신을 반복하는 형태가 될 것이고 이.. 2022. 6. 30.
[알고리즘] 투 포인터 개인 공부 후 자료를 남겨놓기 위한 목적이므로, 생략되거나 오류가 있을 수 있음을 알립니다. 투포인터 1. 투포인터란? 투포인터 알고리즘(Two Pointer Algorithm) 또는 슬라이딩 윈도우(Sliding Window) 라고 부른다. 간단한 원리로는 1차원 배열이 존재할 때, 이 배열에서 각자 다른 원소를 가리키고 있는 2개의 '포인터'를 조작하면서 원하는 값을 얻는 알고리즘이다. 2. 기본 메커니즘 보통 투포인터에서는 두개의 포인터를 strat(s), end(e)로 설정하고, 우리가 문제를 풀거나, 알고리즘을 짜면서 만든 특정한 조건에 따라 각 포인터를 한칸씩 이동시켜 바라보는 배열의 크기를 조절한다. 이렇게 특정 구간의 배열만 바라보면서 해답을 찾아내는 알고리즘이다. 1. s = 0, e =.. 2022. 6. 30.
[C++] STL cmath, map 개인 공부 후 자료를 남겨놓기 위한 목적이므로, 생략되거나 오류가 있을 수 있음을 알립니다. 최근에 알고리즘을 풀며 사용했던 STL인 cmath와 map에 대해 대표적인 몇가지 메소드를 알아보도록 하자. cmath cmath는 C++ STL에 들어있는 라이브러리중 하나로, 수학 연산에 관련된 메소드들을 많이 가지고 있다. 그 중 자주 사용하게 될 메소드 몇가지를 알아보도록 하자. 가장 기본적으로는 코드의 헤더부분에 를 삽입해주어야 사용이 가능하다. min, max 최대, 최소를 계산해주는 메소드이다. 다음과 같이 사용하며, 인자로 들어가는 x와 y중 최대, 최소값을 반환해준다. ceil, floor 순서대로 올림, 내림에 관한 메소드이다. 반환되는 값은 double형으로 반환하며, 해당 x값을 정수로 올.. 2022. 6. 29.
[백준] 16472번: 고냥이 (C++) 16472번: 고냥이 문제 ) 고양이는 너무 귀엽다. 사람들은 고양이를 너무 귀여워했고, 결국 고양이와 더욱 가까워지고 싶어 고양이와의 소통을 위한 고양이 말 번역기를 발명하기로 했다. 이 번역기는 사람의 언어를 고양이의 언어로, 고양이의 언어를 사람의 언어로 바꾸어 주는 희대의 발명품이 될 것이다. 현재 고양이말 번역기의 베타버전이 나왔다. 그러나 이 베타버전은 완전 엉망진창이다. 베타버전의 번역기는 문자열을 주면 그 중에서 최대 N개의 종류의 알파벳을 가진 연속된 문자열밖에 인식하지 못한다. 굉장히 별로지만 그나마 이게 최선이라고 사람들은 생각했다. 그리고 문자열이 주어졌을 때 이 번역기가 인식할 수 있는 최대 문자열의 길이는 얼마인지가 궁금해졌다. 고양이와 소통할 수 있도록 우리도 함께 노력해보자... 2022. 6. 29.