728x90
반응형
1. 문제 설명
2. 풀이과정
- sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys
- 수열의 범위를 입력받는다. T = int(sys.stdin.readline())
- 현재 수열의 마지막 값을 저장할 변수를 생성하고 수열의 시작값인 1로 초기화한다. count = 1
- 수열을 만들 수 있는지 없는지 확인할 변수를 생성하고 True로 초기화한다. right = True
- 수열을 저장할 리스트를 생성한다. li = list()
- 수열을 만들기 위해 수행한 연산을 저장할 리스트를 생성한다. answer= list()
- 수열의 개수만큼 반복하며 for _ in range(T)
- 값을 입력받는다. num = int(sys.stdin.readline())
- 1부터 입력받은 값까지 수열 리스트에 추가하고 while (count <= num): li.append(count)
- 추가는 push 연산이므로 연산 리스트에 +를 추가한다. answer.append('+')
- 계속해서 다음 수열 값을 추가해야 하므로 수열 값을 1 증가시킨다. count += 1
- 만약 수열 리스트의 마지막 값이 입력한 값이면 if (li[-1] == num)
- 수열 리스트에서 해당 값을 삭제한다. li.pop()
- 삭제는 pop 연산이므로 연산 리스트에 -를 추가한다. answer.append('-')
- 반면에 수열 리스트의 마지막 값이 입력한 값이 아니면 else
- 해당 자료는 수열이 될 수 없다. 하여 NO를 출력하고 print('NO')
- 수열을 만들 수 없다고 판단한다. right = False
- 수열을 만들 수 없다고 판단되었으므로 종료한다. break
- 수열을 만들 수 있다면 if (right)
- 연산 리스트의 원소를 하나씩 출력한다. for i in answer: print(i)
반응형
3. 소스코드
import sys
T = int(sys.stdin.readline())
count = 1
right = True
li = list()
answer = list()
for _ in range(T):
num = int(sys.stdin.readline())
while (count <= num):
li.append(count)
answer.append('+')
count += 1
if (li[-1] == num):
li.pop()
answer.append('-')
else:
print('NO')
right = False
break
if (right):
for i in answer:
print(i)
728x90
반응형
'백준' 카테고리의 다른 글
[백준] 1924번 : 2007년 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.08.06 |
---|---|
[백준] 1932번 : 정수 삼각형 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.08.05 |
[백준] 2309번 : 일곱 난쟁이 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.08.04 |
[백준] 4153번 : 직각삼각형 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.08.03 |
[백준] 11651번 : 좌표 정렬하기 2 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.08.01 |
[백준] 15649번 : N과 M (1) - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.31 |
[백준] 11053번 : 가장 긴 증가하는 부분 수열 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.30 |
[백준] 1436번 : 영화감독 숌 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.29 |