티스토리 뷰
내가 작성한 코드
N = input().split()
result = []
for i in range(1, 8):
check = int(N[i]) - int((N[i-1]))
if abs(check) == 1:
result.append(check)
else:
result.append(0)
if result.count(1) == 7:
print('ascending')
elif result.count(-1) == 7:
print('descending')
else:
print('mixed')
* 풀이
- 첫 접근 방식
1. 배열 현재값과 이전값의 차가 1일 경우 연속된 값이다.
2. 절대값이 1일 경우 (1, -1) result 배열에 추가한다.
3. result 배열의 값 1, -1, 0 에 따라 다른 값을 출력한다.
- 접근 방식의 문제점
1. map 함수를 사용
ㄴ 반복문을 통해 정수로 변환하지 않아도 된다.
int(N[i]) - int((N[i-1]))
ㄴ map 함수는 리스트의 요소를 지정된 함수로 처리해준다. 원본은 변경하지 않고 새 리스트를 생성한다.
· list(map(함수, 리스트))
· tuple(map(함수, 튜플))
list(map(int, input().split()))
2. 절대값으로 비교하지 않아도 된다. 오름차순 정렬, 내림차순 정렬 가능하다.
오름차순 정렬 : sorted(N)
내림차순 정렬 : sorted(N, reverse=True)
·sorted()
ㄴ 기존의 리스트를 변경하는 것이 아닌 정렬의 새로운 리스트를 반환
* 짧은 코드
N = list(map(int, input().split()))
if N == sorted(N):
print('ascending')
elif N == sorted(N, reverse=True):
print('descending')
else:
print('mixed')
'Code > BackJoon' 카테고리의 다른 글
백준 10809번: 알파벳 찾기 [Python] (0) | 2022.01.27 |
---|---|
백준 11654번: 아스키 코드 [Python] (0) | 2022.01.26 |
백준 8958번: OX퀴즈 [Python] (0) | 2022.01.25 |
백준 2577번: 숫자의 개수 [Python] (0) | 2022.01.24 |
백준 11721번: 열 개씩 끊어 출력하기 [Python] (0) | 2022.01.24 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 백준1942
- 파이썬
- 백준2440
- 리눅스계정
- 백준11721
- 백준 2742
- 백준2920
- 파이썬 오른쪽정렬
- 파이썬 반복문
- 코테준비
- 별찍기 -3
- 백준
- reversed함수
- 별찍기 -2
- 파이썬 내림차순 정렬
- 백준2441
- 백준2007년
- 파이썬 덧셈
- 백준코테
- 별찍기 -1
- 리눅스계정경로
- 코테
- 별찍기 -4
- 코딩테스트
- 파이썬 거꾸로
- 파이썬 오름차순 정렬
- 백준 별찍기
- 오른쪽정렬
- range특징
- 파이썬 find
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함