본문 바로가기

cpp450

[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.
[백준] 1644번: 소수의 연속합 (C++) 1644번: 소수의 연속합 문제 ) 하나 이상의 연속된 소수의 합으로 나타낼 수 있는 자연수들이 있다. 몇 가지 자연수의 예를 들어 보면 다음과 같다. 3 : 3 (한 가지) 41 : 2+3+5+7+11+13 = 11+13+17 = 41 (세 가지) 53 : 5+7+11+13+17 = 53 (두 가지) 하지만 연속된 소수의 합으로 나타낼 수 없는 자연수들도 있는데, 20이 그 예이다. 7+13을 계산하면 20이 되기는 하나 7과 13이 연속이 아니기에 적합한 표현이 아니다. 또한 한 소수는 반드시 한 번만 덧셈에 사용될 수 있기 때문에, 3+5+5+7과 같은 표현도 적합하지 않다. 자연수가 주어졌을 때, 이 자연수를 연속된 소수의 합으로 나타낼 수 있는 경우의 수를 구하는 프로그램을 작성하시오. 입력 :.. 2022. 6. 29.
[백준] 2467번: 용액 (C++) 2467번: 용액 문제 ) KOI 부설 과학연구소에서는 많은 종류의 산성 용액과 알칼리성 용액을 보유하고 있다. 각 용액에는 그 용액의 특성을 나타내는 하나의 정수가 주어져있다. 산성 용액의 특성값은 1부터 1,000,000,000까지의 양의 정수로 나타내고, 알칼리성 용액의 특성값은 -1부터 -1,000,000,000까지의 음의 정수로 나타낸다. 같은 양의 두 용액을 혼합한 용액의 특성값은 혼합에 사용된 각 용액의 특성값의 합으로 정의한다. 이 연구소에서는 같은 양의 두 용액을 혼합하여 특성값이 0에 가장 가까운 용액을 만들려고 한다. 예를 들어, 주어진 용액들의 특성값이 [-99, -2, -1, 4, 98]인 경우에는 특성값이 -99인 용액과 특성값이 98인 용액을 혼합하면 특성값이 -1인 용액을 만.. 2022. 6. 28.