티스토리 뷰

Question

Given a sequence of integers as an array, determine whether it is possible to obtain a strictly increasing sequence by removing no more than one element from the array.

Note: sequence a0, a1, ..., an is considered to be a strictly increasing if a0 < a1 < ... < an. Sequence containing only one element is also considered to be strictly increasing.


Example

  • For sequence = [1, 3, 2, 1], the output should be almostIncreasingSequence(sequence) = false.

    There is no one element in this array that can be removed in order to get a strictly increasing sequence.

  • For sequence = [1, 3, 2], the output should be almostIncreasingSequence(sequence) = true.

    You can remove 3 from the array to get the strictly increasing sequence [1, 2]. Alternately, you can remove 2 to get the strictly increasing sequence [1, 3].


Input/Output

  • [execution time limit] 4 seconds (py3)

  • [input] array.integer sequence

    Guaranteed constraints: 2 ≤ sequence.length ≤ 105, -105 ≤ sequence[i] ≤ 105.

  • [output] boolean

    • Return true if it is possible to remove one element from the array in order to get a strictly increasing sequence, otherwise return false.

ANSWER

def almostIncreasingSequence(sequence):
    removeCount = 0
    if sequence[0] >= sequence[1]:
        removeCount += 1
    i = 2
    while i < len(sequence):
        if sequence[i - 1] >= sequence[i]:
            removeCount += 1
            if sequence[i - 2] >= sequence[i]:
                sequence[i] = sequence[i - 1]
        i += 1

    return (removeCount < 2)

 

-> 이번 문제는 혼자 풀기 어려워서 돌아다니는 답을 그대로 옮겼다...

 

'Codesignal' 카테고리의 다른 글

code signal - 10. commonCharacterCount  (0) 2020.01.29
code signal - 9. All Longest Strings  (0) 2020.01.29
code signal - 8. matrixElementsSum  (0) 2020.01.29
codesignal 4-6 문제풀이  (0) 2020.01.14
codesignal 1-3 문제풀이  (0) 2020.01.09
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함