분류 전체보기 387

백준 2579 계단 오르기, c++

작성한 코드는 다음과 같다. max(dp[i-2], dp[i-3]+arr[i-1]) + arr[i]; 가 되는 이유: ex. dp[4]를 구할 때 2,3,4인 경우가 이어서 건너게 되면 안되므로 i=2 에서 4로 가거나, i=1,3을 건너 4로 가는 경우로 고려해 주어야 함. (i=3에서 4로 가는 경우로 하면 안됨, 2,3,4연속해서 가는 경우가 포함될 수 있음) #include #include using namespace std; int main(){ int n; cin >> n; int arr[n+1]; for(int i=1; i> arr[i]; int dp[n+1] = {0,}; dp[1] = arr[1]; dp[2] = arr[1]+arr[2]; dp[3] = max(arr[1]+arr[3], ..

백준 2024.03.09

백준 16506 CPU, c++

처음 작성한 코드는 다음과 같다. 하지만 틀렸다는 결과가 나왔다. 출력할 때 문자열이 아닌 그냥 000 이런 int 형태로 출력하다보니, c++에선 2진수가 아니라 10진수로 한 번 더 계산되어서 출력하기 때문에 생기는 문제였다. 000을 문자열 형태로 "000" 이런 식으로 출력해야했다. #include #include using namespace std; int main(){ int n; cin >> n; string str; int D, A, B; for(int i=0; i> str >> D >> A >> B; if(str=="ADD") cout

백준 2024.03.07

백준 3568 iSharp, c++

처음 작성한 코드는 다음과 같으나 틀렸다는 결과가 나왔다. #include #include #include #include using namespace std; // 공백을 없애는 함수 string removeSpaces(const string& input) { string result; for (char c : input) { if (!isspace(static_cast(c))) { result += c; } } return result; } // 쉼표를 기준으로 문자열을 분할하는 함수 vector splitByComma(const string& input) { vector result; istringstream iss(input); string token; while (getline(iss, toke..

백준 2024.03.07

백준 1141 접두사, c++

작성한 코드는 다음과 같다. 단어를 사전식으로 sort해주고, 중첩for문을 이용해서 앞의 단어가 접두사형태로 완전히 겹치는 단어가 뒤에 있으면 false로 체크해준다. 마지막에 true로 남은 문자열만 세서 출력해주면 된다. 처음에는 그냥 배열 형태로 써서 오류가 났다. vector로 쓰니 해결되었다. #include #include #include #include using namespace std; int main(){ int n; cin >> n; vector arr(n); for(int i=0; i> arr[i]; sort(arr.begin(), arr.end()); vector same(n, true); for(int i=0; i

백준 2024.03.06