티스토리 뷰
반응형
풀이
소프티어에서 8단 변속기 문제와 완벽히 일치한다. 한 번 읽고 온다면 도움이 될 것이다.
https://softeer.ai/practice/6283
이 문제에서 요구하는 개념은 간단하다.
1. 8부터 1까지 반대로 나열할 수 있느냐?
2. 만약 나열이 가능하다면, 그 나열된 리스트들이 순서대로 되어 있는지 확인할 수 있느냐?
그렇기에 설명을 위해 풀어 쓴 코드는 다음과 같다.
a = list(map(int,input().split()))
b = [i for i in range(1,9)]
c = [i for i in range(8,0,-1)]
count=0
for i in range(8):
if b[i]==int(a[i]):
count+=1
elif c[i]==int(a[i]):
count-=1
if count==8:
print('ascending')
elif count==-8:
print('descending')
else:
print('mixed')
중간에 카운트를 넣은 이유는, 만약에 8단 변속기가 아닌 9단이 주어졌을때, 혹은 100단이 주어졌을 때도 있을 수 있기 때문이다.
유지 보수 관점에서 함수를 짜는 행위인 것이다.
1등의 함수는 문제 풀이에 있어선 합리적이지만, 결코 실천되지는 못한다.
#1등의 함수
i = input()
if i == '1 2 3 4 5 6 7 8': print('ascending')
elif i == '8 7 6 5 4 3 2 1': print('descending')
else: print('mixed')
따라서 우리는 항상 모든 변수가 변할 것을 염려해두고 코드를 짜도록 하자.
반응형