일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 인앱결제
- 코딩테스트 연습
- java 객체지향 프로그래밍
- 네트워크 관리사
- it 이슈
- 백준위
- 네트워크 관리사 2급
- 코테
- html
- 구글
- 코딩테스트
- 신문 스크랩
- SSAFY
- KT
- 신문스크랩
- 백준
- 싸피셜
- 우테코
- 리얼클래스
- Java
- IT 트렌드
- 싸피
- IT 동향
- SSAFY 7기
- SSAFYcial
- 카카오
- python
- 프로그래머스
- 네트워크 관리사 2급 실기
- it 뉴스
Archives
- Today
- Total
개발자일걸요..?
1541번 잃어버린 괄호 본문
728x90
반응형
문제링크 : www.acmicpc.net/problem/1541
1541번: 잃어버린 괄호
첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다
www.acmicpc.net
<알고리즘>
1) 부호가 두 종류밖에 없으므로 부호를 기준으로 수를 구분하여 수와 부호의 배열 생성
2) 사이의 부호를 +로 한 두 수를 괄호로 묶어 앞에 빼는 수를 커지게 만듦
3) 덧셈들을 모두 수행한 후에 앞에서부터 차례대로 뺄셈 수행
=> 덧셈들을 괄호로 묶어 먼저 수행해줌으로써 뺄셈의 수가 더 커지게 만듦
( 메모리 : 28776KB 시간 : 64ms)
import sys
strinput = sys.stdin.readline()
#숫자는 numbers에 기호는 sign에 넣기
numbers = []
sign = []
number = ""
for i in range (len(strinput)):
if((strinput[i] == "-") or (strinput[i]== "+")):
sign.append(strinput[i])
numbers.append(int(number))
number = ""
else:
number+=strinput[i]
numbers.append(int(number))
index = 0
while(True):
if(index==len(sign)):
break
if(sign[index] == '+'):
numbers[index] += numbers[index+1]
del numbers[index+1]
del sign[index]
else:
index+=1
result = 0
for j in range(0,len(sign)):
numbers[j+1] = numbers[j]-numbers[j+1]
print(numbers[len(numbers)-1])
반응형
'알고리즘코딩 > Baekjoon Online Judge' 카테고리의 다른 글
10773번 제로 (0) | 2021.02.22 |
---|---|
10828번 스택 (0) | 2021.02.22 |
1931번 회의실 배정 (0) | 2021.02.21 |
13305번 주유소 (0) | 2021.02.20 |
11399번 ATM (0) | 2021.02.20 |
Comments