본문 바로가기

해설35

[C++] 기초부터 공부하기(1. 기초 & 입출력)! 백준을 100문제 넘게 풀고 골드 문제로 가면서부터 C언어로 PS를 하는데에 한계를 느끼기 시작했다.. 그래서!!! C언어와 매우 유사한 C++을 공부하기로 마음을 먹었다! 이젠 C++을 이용해 알고리즘을 풀거다! 1) C++ 기초 이에 앞서 C와는 다른 C++의 차이점 몇가지를 짚고 넘어가려고 한다. 1-1. std -cout,cin,endl를 포함하여 자주 사용되는 함수들이 정의되어 있는 곳으로 표준라이브러리에 있는 변수 또는 함수들이 std 네임스페이스에 포함되어 있다. 따라서 표준 라이브러리를 사용하기 위해서는 std::를 앞에 붙어야지만 사용할 수 있지만 using namespace std를 이용하면 생략해서 사용이 가능하다. 1-2. 입출력 (cin,cout) 및 \n과의 차이점 입력과 출력을.. 2023. 9. 2.
[C/C++] 이항 계수 2 https://www.acmicpc.net/problem/11051 11051번: 이항 계수 2 첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 1,000, 0 ≤ \(K\) ≤ \(N\)) www.acmicpc.net 이항 계수 문제는 사실상 Dynamic Programming 문제 중에서 가장 기초적이면서 유명한 문제라고 할 수 있다. 사실 Dynamic Programming 풀지 않아도 이항계수 계산을 범위를 초과되지 않은 기준 내에서 해결가능하기는 하다. 하지만 DP를 이용해서 푸는 것이 값이 매우 커질 경우 더 효과적일 수도 있다. DP로 풀기 위해서는 공식하나를 알아야하는데 바로 nCr=n-1Cr + n-1Cr-1 이다. 즉 nCr을 구하기 위해서는 n-1Cr 과 n-1C.. 2023. 8. 31.
[C/C++] 2193: 이친수 https://www.acmicpc.net/problem/2193 2193번: 이친수 0과 1로만 이루어진 수를 이진수라 한다. 이러한 이진수 중 특별한 성질을 갖는 것들이 있는데, 이들을 이친수(pinary number)라 한다. 이친수는 다음의 성질을 만족한다. 이친수는 0으로 시작하지 않 www.acmicpc.net 이 문제 역시 2차원 배열 dp[][]을 이용하여 풀었다. dp[i][0]에는 길이가 i인 이친수 중 0으로 끝나는 수의 개수를 dp[i][1]에는 길이가 i인 이친수 중 1로 끝나는 수의 개수를 dp[i][2]에는 길이가 i인 이친수의 개수를 저장하였다. 이렇게 나눈 이유는 마지막이 0으로 끝나면 그 다음에는 0과 1 모두 올 수 있지만 1로 끝나게 된다면 그 다음에 0밖에 못온다. .. 2023. 8. 31.
[C/C++] 10844: 쉬운 계단 수 https://www.acmicpc.net/problem/10844 10844번: 쉬운 계단 수 첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net 뜻하지 않게 이 문제를 11057: 오르막 수를 풀고 그 다음에 바로 풀었더니 굉장히 빨리 풀었다! 오르막 수에 관한 코드 설명은 아래 링크와 같다. https://donggul-godsang.tistory.com/66 [C/C++] 11057: 오르막 수 최대한 점화식을 구하려고 생각하다보니 규칙을 발견하게 됐다! 다른 DP 문제와는 다르게 2차원 배열을 이용하여 DP를 저장해야지 풀려서 생각하는데 조금 시간이 걸린 것 같다. dp[n][n]에서 첫번 donggul-godsang.tistory.com 이 문제.. 2023. 8. 30.