본문 바로가기

코테32

백준 1152번 단어의 개수 C++/문자열/브론즈2 https://www.acmicpc.net/problem/1152 1152번: 단어의 개수 첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열 www.acmicpc.net 공백 포함해서 문자열 받기 getline(cin,st) getline 을 사용했다. 처음에는 단순히 문자열 받고 공백 수 세서 출력했는데 틀렸다고 나왔다. 조건을 더 세분화했다. - 만약 문장 자체가 공백이라면 0을 출력한다. - 만약 문장의 앞이 공백이라면 1을 뺀다. - 만약 문장이 공백으로 끝나면 1을 뺀다. 문자열 부분이 약해서 문자열 문제를 더 풀어보고자 한다. #include #i.. 2023. 10. 22.
백준 9655번 돌 게임 C++/DP/실버5 https://www.acmicpc.net/problem/9655 9655번: 돌 게임 상근이가 게임을 이기면 SK를, 창영이가 게임을 이기면 CY을 출력한다. www.acmicpc.net 아이디어 사실 돌의 개수를 1부터 시작해서 조금씩 늘려가다보면 돌이 홀수면 상근이 짝수면 창영이가 이긴다. 그래서 간단히 n 을 2로 나누고 바로 답을 출력해도 되는데 dp 문제이므로 dp 문제로 풀어보자면 dp 배열에 게임의 횟수를 계산한다. 0,1,2 판 일때의 게임 횟수를 계산해놓고 3번째 부터 돌을 1개 가져갈 경우와 3개 가져갈 경우 중 게임이 더 적게 플레이되는 경우에 + 1 한 값을 더한다. 나온 값으로 게임 횟수가 짝수 홀수 인지에 따라 답을 출력한다. #include #include using name.. 2023. 10. 21.
백준 1149번 RGB 거리 C++/DP/실버1 https://www.acmicpc.net/problem/1149 1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net 예전에 풀려고 했을 때는 손도 못대구 문제 이해 조차 어려웠지만 지금은 문제도 이해하고 문제도 풀려고 할 수 있었다. 마지막 테스트 케이스가 풀리지 않았다. 우선 처음 생각한 코드는 이렇가. #include #include using namespace std; int n, arr[1001][4], dp[1001], ch[1001]; int main(int argc, const.. 2023. 10. 21.
백준 2579번 계단오르기 C++/DP/실버 3 https://www.acmicpc.net/problem/2579 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net 아이디어 -dp 배열은 그 층에 왔을 때 가장 큰 점수를 갖는 값을 저장한다. - 계단을 1칸 , 2칸 이렇게 올라가는데, 연속에서 1칸씩 올라갈 순 없다. - 즉 나에게로 올 때 1칸 + 2칸 이렇게 가거나 2칸 + 1칸 이렇게 와야한다는 것이요 즉 이 문제에서 3층 계단까지 초기화를 해 놓아야 그 다음 점화식을 계산할 수 있다. 계단이 3층인 경우를 봅시다. 3층으로 오는 방법으로는 1+1+1 1+2 2+.. 2023. 10. 21.
백준 2775번 부녀회장이 될테야 C++/DP/브론즈 1 https://www.acmicpc.net/problem/2775 2775번: 부녀회장이 될테야 첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다 www.acmicpc.net 아이디어 - 호수를 0층을 초기화하고 시작해 위로 올라나간다. - 반복문을 이용해 각 호수별로 차곡차곡 쌓아 나간다. - 처음에는 반복문을 i,j 두개만 이용했지만 이러면 1층의 마지막 호수만 계산이 되는데 2층 계산시 빈 호수들이 있다. - 따라서 각 호수를 다 채워줄 수 있는 x 반복문까지 있어야한다. #include #include using namespace std; int main(int argc, const char* argv.. 2023. 10. 21.
백준 1003번 피보나치 함수 C++/DP/실버3 https://www.acmicpc.net/problem/1003 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net 아이디어 - 다이나믹 프로그래밍 - 값이 하나였던 문제들과는 달리 이차원 배열 혹은 벡터를 사용해야하나 싶었다. - 하지만 굳이 그렇게 안하고 pair 를 사용했다. - 0,1 이렇게 두개의 공간만 있으면 되니 first 와 second 를 이용해도 되었던 것. - pair pair pair 현명한 자료 구조를 생각해내자 으자아자 #include #include using namespace std; int main(int argc, const char* argv[]) { ios_base::sy.. 2023. 10. 21.