BOJ/백준-4589-python

cosmos·2022년 7월 12일
0
post-thumbnail

문제

풀이

  • 주어진 데이터가 오름차순 또는 내림차순으로 정렬되어있으면 ordered, 아니면 unordered를 출력해야하는 문제이다.
  • list의 첫 번째 index가 max값이면 내림차순으로 가정해 reverse를 시킨 비교군 list와 비교하도록 구현하였다.
  • 반대로 list의 첫 번째 index가 최솟값이면 오름차순으로 가정하며 sort asc를 시킨 비교군과 list를 비교하도록 구현하였다.
  • 그 외의 상황이면 정렬이 안되있는 데이터이므로 unorded이다.

코드

# https://www.acmicpc.net/problem/4589
# boj, 4589: gnome sequencing, python3
import sys

input = sys.stdin.readline  # 변수 입력 속도 향상

# (shortest to longest) or (longest to shortest) 또는 그 외의 경우인지 판별하는 함수
def solve(l: list) -> str:
    if l[0] == max(l):
        compare_l = sorted(l, reverse=True)
    elif l[0] == min(l):
        compare_l = sorted(l)
    else:
        return 'Unordered'

    return 'Ordered' if l == compare_l else 'Unordered'

if __name__ == '__main__':
    n = int(input())

    print('Gnomes:')

    for _ in range(n):
        datas = list(map(int, input().split()))

        print(solve(datas))

결과

출처 & 깃허브

boj 4589
github

0개의 댓글