Algorithm/Implementation
(Python/파이썬) - 백준(BOJ) 11536번 : 줄 세우기
하눤석
2022. 4. 29. 09:31
728x90
https://www.acmicpc.net/problem/11536
- 문제 :
악독한 코치 주혁은 선수들을 이름 순으로 세우는 것을 좋아한다. 더 악독한 것은 어떤 순서로 서야할지도 알려주지 않았다! 선수들의 이름이 주어질 때 어떤 순서로 이루어져있는지 확인해보자.
- 풀이 :
구현 문제입니다.
주어진 N개의 이름들이 전부 오름차순이라면 INCRESING 내림차순이라면 DECRESING 둘 다 아니라면 NEITHER를 출력하면 됩니다.
다음은 문제 해결 알고리즘의 흐름입니다.
1. 주어진 이름들을 name 배열에 넣고 0, 1 번째 인덱스 값을 비교한 boolean값을 check에 넣는다.
ex) abc와 bcd를 비교했을 때 abc가 사전순으로 더 앞에 있으므로 check에는 True가 저장되게 됩니다.
2. 1번부터 N-1번째 인덱스까지 i와 i+1번째 이름을 비교한 결괏값이 check와 다르다면 오름차순과 내림차순 둘 다 아니라는 것이므로 NEITHER를 출력하고 종료한다.
3. for문이 종료하면 NEITHER가 아닌 것이므로 check 값에 따라 NCRESING 또는 DECRESING을 출력한다.
부가설명 ) check의 초기값이 name[0] < name[1] 이므로 True라면 오름차순, False라면 내림차순이다.
- 소스코드 :
import sys
input = sys.stdin.readline
N = int(input())
name = [input().strip() for _ in range(N)]
check = (name[0] < name[1])
for i in range(1,N-1):
if check != (name[i] < name[i+1]):
print("NEITHER")
exit()
if check:
print("INCREASING")
else:
print("DECREASING")
320x100