본문 바로가기

백준 write-up/정렬 & 그리디

[백준] 줄 세우기 : 11536번 - Python

728x90
반응형

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

 

11536번: 줄 세우기

이름이 증가하는 순으로 나타나면 INCREASING, 감소하는 순이면 DECREASING을 한 줄에 출력한다. 만약 위의 두 경우가 아니라면 NEITHER를 출력한다.

www.acmicpc.net

 

 

 

문제를 풀면서 몰랐던 개념

 

[Python] 리스트의 정렬 여부 체크하기

-> sorted 함수 사용

arr = [30, 24, 10, 5, 2]

is_sorted = (sorted(arr) == arr)
# It returns False

is_sorted = (sorted(arr, reverse = True) == arr)
# It returns True

 

 

 

문제의 접근 방법

 

리스트의 정렬 여부 확인하기

 

 

 

내가 막혔던 부분

 

sorted함수가 아닌 sort() 메소드로는 리턴 값이 None이기 때문에 비교할 수 없다는 사실을 간과함.

 

 

 

문제 풀이 방법

 

n개의 이름 n값 입력 받기 -> n번만큼 반복문을 돌려 n명의 선수들 이름을 줄바꿈해서 입력 받기 -> 미리 선언해 둔 빈 리스트 arr에 추가하기 -> 만약 입력받은 이름들이 오름차순 정렬되어있다면 "INCREASING", 내림차순 정렬되어있다면 "DECREASING", 둘 다 아니라면 "NEITHER" 출력하기!

 

 

 

소스코드

n = int(input())

arr = []

for _ in range(n):
    name = input()
    arr.append(name)


if sorted(arr) == arr:
        print("INCREASING")
elif sorted(arr, reverse=True) == arr:
        print("DECREASING")
else:
        print("NEITHER")
728x90
반응형