백준 10824번 C++ 네 수
네 수https://www.acmicpc.net/problem/10824네 자연수 A, B, C, D가 주어진다. 이때, A와 B를 붙인 수와 C와 D를 붙인 수의 합을 구하는 프로그램을 작성하시오.두 수 A와 B를 합치는 것은 A의 뒤에 B를 붙이는 것을 의미한다. 즉, 20과 30을 붙이면 2030이 된다. 이게 정답률이 37퍼?이유가 다 있는 거다.입력 조건을 무시하고 풀면 이렇게 된다. 첫째 줄에 네 자연수 A, B, C, D가 주어진다. (1 ≤ A, B, C, D ≤ 1,000,000) 이 조건을 무시하고 그냥 풀었을 때, 만약 백만을 이어 붙이게 되면10000001000000이 되는데, 이는 stoi로 변환했을 때 범위를 초과하므로(int로 변환) 런타임 에러가 날 수밖에 없다.저 조건만 주..
2019. 6. 7.
백준 9461번 C++ 파도반 수열
파도반 수열오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여져 있다. 첫 삼각형은 정삼각형으로 변의 길이는 1이다. 그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다. 나선에서 가장 긴 변의 길이를 k라 했을 때, 그 변에 길이가 k인 정삼각형을 추가한다.파도반 수열 P(N)은 나선에 있는 정삼각형의 변의 길이이다. P(1)부터 P(10)까지 첫 10개 숫자는 1, 1, 1, 2, 2, 3, 4, 5, 7, 9이다.N이 주어졌을 때, P(N)을 구하는 프로그램을 작성하시오. 생각하는 과정그냥 나열해 보면 된다.규칙은 바로 보이는데 이게 맞나 싶어서 계속 나열해 보았다. 11 ->11 1 ->11 1 1->1+11 1 1 2->1+11 1 1 2 2->1+2 4차이1 1 1 2 2 3->1+3 4차..
2019. 6. 1.
백준 1912번 C++ 연속합
연속합https://www.acmicpc.net/problem/1912n개의 정수로 이루어진 임의의 수열이 주어진다. 우리는 이 중 연속된 몇 개의 수를 선택해서 구할 수 있는 합 중 가장 큰 합을 구하려고 한다. 단, 수는 한 개 이상 선택해야 한다.예를 들어서 10, -4, 3, 1, 5, 6, -35, 12, 21, -1 이라는 수열이 주어졌다고 하자. 여기서 정답은 12+21인 33이 정답이 된다. 생각하는 과정이 문제에서 생각해 볼 수 있는 케이스는 연속일 때만을 고려하므로, 두 가지다.i번째를 선택한다는 가정하에1) 연속이 아닐때(i-1번째를 선택하지 않을 때) -> dp[i] 선택(자기 자신만을 가지고 감)2) 연속일 때(i-1번째를 선택할 때) -> dp[i-1]+series[i] 선택(자..
2019. 5. 30.