개발 노트/백준, 프로그래머스 풀이165 백준 1620/c++ )) 나는야 포켓몬 마스터 이다솜 t 대신 s를 재사용해도 다시 새로 입력 받는거니 문제없다 map 사용 시 value 값으로 key값을 찾는 방법은 없다. 있어도 너무 긴 연산이 필요하여 알고리즘에 부적합하다 그러므로 value값을 key값으로 갖고 key값을 value 값으로 갖는 새 map을 하나 더 만들어서 2개의 map 으로 사용하여 계산하는 것이 해답이다 c_str 과 atoi 를 통해서 문자열을 숫자로 변환하고 그게 가능한지 불가능하면 0를 반환하게 하는 방법이 쓰였다 문자와 숫자가 섞이지 않은 문자열이므로 가능했으며, 첫 단어가 영문자 or 숫자 로 정해져있기에 문자 0과 숫자 0을 구분해줄 isdigit 을 사용할 필요가 없었는 문제였다 굳이 map을 안쓰고 배열로 풀어보려다가 런타임 오류를 해결못해서 다시 map 으로 .. 2022. 6. 15. [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. 이전 1 ··· 38 39 40 41 42 다음