본문 바로가기
코드포스/div2

A. Find The Array

by kcj3054 2021. 8. 9.

문제 설명

: 어떤 배열이 있을때 ai -1, a-2 값이 배열에 있거나 ai == 1이어야한다... 그런 경우의 가장 작은 경우를 구해라..

문제풀이 :

input 예시
4
1
8
7
42

output예시:
1
3
3
7

s가 주어질때

s가 8일때 -> 1, 3, 4 가능하다 size -> 3

7일때 -> 1, 2, 4 가능하다 size -> 3

42일때 -> 1, 3, 5, 7, 9, 11, 6
1, 3, 5, 6, 7, 9, 11 가능하다 7

      s <= n^2 일때 n이 가장작은 경우의 수이다 
        for (int i = 1; i < 5000; ++i) {

            if (sum <= i * i) {
                ans = i;
                break;
            }
        }

틀린이유

처음에는 저렇게 풀지 않았지만 무한루프에 빠지는데 그 이유를 찾지 못했었다.

알고보니 다른 케이스가 하나 더 있었는데 찾지못했었다.

처음 풀이는 가장작은 사이즈를 유지하기 위해서 +2 씩 넣으면서 주어진 s에서 넣은 값들을 빼는 방향으로 진행했다

마지막에 남아 있는 수에서 예외를 처리하지 못해서 무한루프에 빠지고 말았다.

'코드포스 > div2' 카테고리의 다른 글

B. Two Tables  (0) 2021.08.02
B. Gregor and the Pawn Game  (0) 2021.08.02
A. PizzaForces  (3) 2021.07.31
div2 - Cherry  (0) 2021.07.30