본문 바로가기

C++3

[BOJ/C++]1699번 제곱수의 합 https://www.acmicpc.net/problem/1699 1699번: 제곱수의 합 어떤 자연수 N은 그보다 작거나 같은 제곱수들의 합으로 나타낼 수 있다. 예를 들어 11=32+12+12(3개 항)이다. 이런 표현방법은 여러 가지가 될 수 있는데, 11의 경우 11=22+22+12+12+12(5개 항)도 가능하다 www.acmicpc.net 문제 자연수 n을 $11=2^2+2^2+1^2+1^2+1^2$ 혹은 $11=3^2+1^2+1^2$와 같은 제곱수들의 합으로 나타낼 수 있다. 이때 표현할 수 있는 제곱수 항의 최소 개수를 구해라. 풀이 i가 제곱수로 표현가능한 경우, 즉 i=j*j인 경우는 dp[i]가 1이다. 그 경우 dp[i]에 1을 넣어주고, 그 외에 경우에는 일단 dp[i]=dp[i-.. 2020. 8. 18.
[BOJ/C++]2579번 계단오르기 https://www.acmicpc.net/problem/2579 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net 문제 계단을 밟으면 그 계단의 점수를 얻음. 이 점수의 최댓값을 찾는 문제. 다만 계단은 한번에 한칸 혹은 두칸 오를 수 있음. 연속된 세칸 오르면 안됨(시작점은 포함x).->ex: 에서 10,20,15를 밟으면 안됨. 10,20,25는 ok 마지막 계단은 모두 밟아야 함. 풀이 arr[n+1]에 계단의 점수를 받고 dp[n+1]에 i번째 계단을 밟았을 때 최댓값을 넣었다. 그래서 마지막에 dp[n]을 출력한.. 2020. 8. 18.
[BOJ/C++] 2798번 블랙잭 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 #include int main(void){ int n; std::cin>>n;//카드의 개수 n int m; std::cin>>m;//m을 넘지 않으면서 int arr[n]; //카드 숫자를 넣을 배열 생성 for(int i=0;i>arr[i];//배열에 숫자 할당 } int total;//세 수를 합한 수 int max=0;//m값과 가까운 값 for(int i=0;ics for문을 무려 3번이나 중첩해서 풀었다. 이후 스터디에서 algorithm의 permutation 기능을 배우고 새롭게 작성해본 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15.. 2020. 1. 31.