[Python] 2491 - 수열 (실버4)

2022. 6. 25. 20:20·Coding Test/Solution

1. 문제 설명

https://www.acmicpc.net/problem/2491

 

2491번: 수열

0에서부터 9까지의 숫자로 이루어진 N개의 숫자가 나열된 수열이 있다. 그 수열 안에서 연속해서 커지거나(같은 것 포함), 혹은 연속해서 작아지는(같은 것 포함) 수열 중 가장 길이가 긴 것을 찾

www.acmicpc.net

 


2. 아이디어

쉽고 간단하고 재밌는 문제.

수열을 훑으면서 오름차순과 내림차순인 경우를 동시에 판단하면 된다.

오름차순이면 decending을 초기화하고, 내림차순이면 ascending을 초기화한다.

만약 값이 같다면 ascending과 decending 모두 1씩 증가시키면서 max값을 갱신하다가

마지막에 더 큰 값을 출력하면 끝난다.


3. 코드

def read_sequence(sequence, n, max_a, max_d):
    ascending, decending = 0, 0

    for idx in range(n):
        if sequence[idx - 1] < sequence[idx]:
            ascending += 1
            max_d = max(max_d, decending)
            decending = 1
        elif sequence[idx - 1] > sequence[idx]:
            decending += 1
            max_a = max(max_a, ascending)
            ascending = 1
        else:
            ascending += 1
            decending += 1
        max_a = max(max_a, ascending)
        max_d = max(max_d, decending)
    return max_a, max_d

def solution():
    n = int(input())
    sequence = list(map(int, input().split()))
    max_a, max_d = 1, 1

    if n == 1:
        print(1)
        return
    max_a, max_d = read_sequence(sequence, n, max_a, max_d)
    print(max(max_a, max_d))

solution()
저작자표시 비영리 (새창열림)
'Coding Test/Solution' 카테고리의 다른 글
  • [Python] 2630 - 색종이 만들기 (실버2)
  • [Python] 17427 - 약수의 합2 (실버2)
  • [Python] 14225 - 부분수열의 합 (실버1)
  • [Python] 11051 - 이항 계수2 (실버3)
나죽못고나강뿐
나죽못고나강뿐
싱클레어, 대부분의 사람들이 가는 길은 쉽고, 우리가 가는 길은 어려워요. 우리 함께 이 길을 가봅시다.
  • 나죽못고나강뿐
    코드를 찢다
    나죽못고나강뿐
  • 전체
    오늘
    어제
    • 분류 전체보기 (486) N
      • Computer Science (61) N
        • Git & Github (4)
        • Network (17)
        • Computer Structure & OS (13)
        • Software Engineering (5)
        • Database (9)
        • Security (5)
        • Concept (8) N
      • Frontend (22)
        • React (14)
        • Android (4)
        • iOS (4)
      • Backend (85)
        • Spring Boot & JPA (53)
        • Django REST Framework (14)
        • MySQL (10)
        • Nginx (1)
        • FastAPI (4)
        • kotlin (2)
        • OpenSearch (1)
      • DevOps (24)
        • Docker & Kubernetes (11)
        • Naver Cloud Platform (1)
        • AWS (2)
        • Linux (6)
        • Jenkins (0)
        • GoCD (3)
      • Coding Test (112)
        • Solution (104)
        • Algorithm (7)
        • Data structure (0)
      • Reference (140) N
        • Effective-Java (90)
        • Pragmatic Programmer (0)
        • CleanCode (11)
        • Clean Architecture (5)
        • Test-Driven Development (4)
        • Relational Data Modeling No.. (0)
        • Microservice Architecture (2)
        • 알고리즘 문제 해결 전략 (9)
        • Modern Java in Action (0)
        • Spring in Action (0)
        • DDD start (0)
        • Design Pattern (6)
        • 대규모 시스템 설계 (7)
        • JVM 밑바닥까지 파헤치기 (4)
        • The Pragmatic Programmer (1)
        • AI Engineering (1) N
      • Service Planning (2)
      • Side Project (5)
      • AI (1)
      • MATLAB & Math Concept & Pro.. (2)
      • Review (25)
      • Interview (4)
      • IT News (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 깃
  • 공지사항

    • 요새 하고 있는 것
    • 한동안 포스팅은 어려울 것 같습니다. 🥲
    • N Tech Service 풀스택 신입 개발자가 되었습니다⋯
    • 취업 전 계획 재조정
    • 취업 전까지 공부 계획
  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
나죽못고나강뿐
[Python] 2491 - 수열 (실버4)
상단으로

티스토리툴바