본문 바로가기

분류 전체보기337

[c++] 로또의 최고 순위와 최저 순위 처음 풀어본 프로그래머스 코딩테스트 문제이다 백준 코딩테스트는 전처리 매크로부터 메인함수까지 코드 전체를 작성해서 만들었는데 프로그래머스는 함수 부분만 구현을 하도록 하는 것 같다 초기화 하지 않은 int형에 ++을 하는 실수가 있었고(쓰레기값에 ++하니 값이 엄척나게 튀었다; 0이 하나도 없고 하나도 맞지 않은 경우 mu와 nn이 모두 0일때 lrank와 hrank가 모두 7 이 된다 하지만 최저 등수는 6등이니 if문으로 7등일때 6등으로 수정해주었다(두개 뿐이니 하나하나 설정하는게 편했다) 문제 질문하기란에 테스트 케이스 14번에서 막히는 사람들이 많던데(나도 그랬고) (모두 틀리고 0도 없는 케이스) 7등의 경우를 6등으로 바꿔주면 테스트 케이스 14번을 해결 가능하다 함수 내에서만 해결을 해야 .. 2022. 6. 15.
백준 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.
[c++] string 의 substr, find string 관련 문제를 풀던 중 사용법을 잊어서 다시 정리한다 substr() : 해당 인덱스 범위의 문자열을 반환한다. 전체 문자열.substr(시작 인덱스 위치, 뽑아낼 문자 개수) // 2번째 인자를 입력하지 않으면 문자열 끝까지 반환한다 find() : 인자로 검색할 문자를 받아 처음으로 검색되어 나온 위치의 인덱스를 반환한다. 검색대상 문자열.find(검색할 문자) = int 검색 문자의 첫인덱스 // 못찾으면 마지막 요소 뒤(string::npos) 를 반환 2022. 6. 14.