처음에 작성한 코드는 다음과 같다.
이중for문이라 시간복잡도가 O(N^2), 최악의 경우엔 O(N^3)까지 나오는 코드이기 때문에
시간초과 오류가 발생했다.
이를 해결하기 위해서는 시간복잡도를 줄여야 했다.
아래 코드와 같이 반복문을 한번만 사용해 계산될 때까지 반복문이 계속 반복되도록 했다.
계산하면서 총 더한 sum의 값보다 주어진 S값이 크면 계속 반복문을 돌며 숫자를 더해나가고,
S보다 sum이 커지는 순간 계산을 멈추고 현재까지 더한 수의 개수를 출력하는 방식이다.
'백준' 카테고리의 다른 글
백준 14503번: 로봇 청소기, c++ (0) | 2024.01.29 |
---|---|
백준 1016번: 제곱 ㄴㄴ 수, c++ (0) | 2024.01.25 |
백준 5622번: 다이얼 (0) | 2023.10.01 |
백준 2743번: 단어 길이 재기 (0) | 2023.10.01 |
백준 27866번: 문자와 문자열, c++ (0) | 2023.09.13 |