본문 바로가기

개발 노트237

백준 2559 수열 문제 개선답 계산방법을 구간합으로 바꾸니 연산이 줄어 시간내에 해결 가능하였다 max 를 사용해서 비교 갱신하여 ret 의 최대값을 구하였으므로, 최소값을 구하였고 여유값을 더 준점이 포인트다 #include using namespace std; int a; int n; int temp; int psum[100004];// 여유공간 4 int ret = -10000004; // max비교를 위한 최소값, 온도가 -100이고 10만번 더하니 -1000만이 최소값이다 여유를 위해 공간을 더 주자 int main(){ cin >> a >> n; for(int i=1; i> temp; psum[i]=psum[i-1]+temp; } for(int i=n; i 2022. 6. 14.
백준 2559 수열 문제 오답 분석 입력 첫째 줄에는 두 개의 정수 N과 K가 한 개의 공백을 사이에 두고 순서대로 주어진다. 첫 번째 정수 N은 온도를 측정한 전체 날짜의 수이다. N은 2 이상 100,000 이하이다. 두 번째 정수 K는 합을 구하기 위한 연속적인 날짜의 수이다. K는 1과 N 사이의 정수이다. 둘째 줄에는 매일 측정한 온도를 나타내는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 수들은 모두 -100 이상 100 이하이다. 출력 첫째 줄에는 입력되는 온도의 수열에서 연속적인 K일의 온도의 합이 최대가 되는 값을 출력한다. 제출결과 시간 초과. 실패 1차 수정 : sort 를 max_element 함수를 사용해서 시간을 개선해보려 함. 실패 2차 수정 : ios_base::sync_with_stdio(false)를 넣.. 2022. 6. 14.
2차원 배열의 경우 선언 시 열은 꼭 입력해주자 int arr[][]; 와 같이 행 열 모두 입력 하지 않고 선언하면 에러가 발생한다 int arr[][3]; 이처럼 반드시 열은 꼭 입력해줘야 한다. 행은 선언시 입력하지 않아도 된다 2022. 6. 13.
c++ 배열을 인자로 받는 함수는 함수의 크기를 인자로 같이 받아야한다 int odap(int arr[]) { } 만으로는 배열의 크기를 알 수 없으므로 배열을 활용할 수 없다 함수내의 자원만으로 받은 배열의 크기를 구하는 방법은 없다 배열을 받는게 아니라 그 배열의 포인터로 인자를 받기 때문이다 포인터는 시작 주소만 있고 데이터(배열)의 끝을 모르므로, c++ 에서 함수 작성시, 배열을 인자로 받을때는 아래와 같이 사용하여 int odap(int arr[], int size) 꼭 배열의 크기을 함께 입력 받도록 하자 몇시간을 해도 안됐었는데... 이런 이유였다니... 2022. 6. 13.