본문 바로가기

시간 초과2

[백준 11659/c++] 구간 합 구하기 4 벡터에 accumulate 를 사용하여 푸니 시간초과가 떴다 그렇다면 속도 향상을 위해서 벡터보다 빠르다는 정적 배열을 사용하고 두 개의 구간을 계산하는 accumulate 대신에 누적 합의 차를 통해 얻은 구간합을 이용하여 구간 계산을 두 번에서 한 번으로 연산과정을 줄여 처리 속도를 높여 해결하였다 주석처리한 부분은 시간초과가 났던 벡터 풀이다 https://www.acmicpc.net/problem/11659 11659번: 구간 합 구하기 4 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j www.acmicpc.net #include using.. 2022. 7. 22.
[백준 5525/c++] IOIOI - 문자열 - 탐색 - 부분 점수 연산 시간을 줄여서 최소한의 연산으로 문자를 탐색하는 로직을 만드는 문제였다 조건에 부분 만족 시 부분 점수를 주는 서브 테스크 문제로서, 부분 점수 50점의 조건은 논리에 이상이 없는지, 100점은 일정 시간내에 풀 수 있는지 였다 find를 통해 이전 문자 탐색처럼 코드를 짜니 시간복잡도가 높아 부분점수를 받았고, ' I ' 이후에 오는 문자들이 IO라는 조건에 맞을 시 그 문자들이 n개 이상이 되어 원하는 문자의 길이를 충족하는지를 앞에서 부터 문자를 하나씩 옮겨가며 충족 시 IO의 문자 수 만큼인 2만큼 인덱스를 추가하여 계속 카운트 해나가는 방식으로 풀면 시간내에 풀 수 있는 문제였다 https://www.acmicpc.net/problem/5525 5525번: IOIOI N+1개의 I와 N개의.. 2022. 6. 24.