백준
1541번 잃어버린 괄호
판다꼬마
2022. 3. 9. 02:04
728x90
https://www.acmicpc.net/problem/1541
1541번: 잃어버린 괄호
첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다
www.acmicpc.net
내 풀이
ㅠㅠ
해결 방법
알고리즘은 이해는 하였다.
-뒤에 있는 모든 숫자를 다 괄호로 묶어서 빼면 되는데 어떻게 코드를 짜야할지 계속 고민하였다.
고민하다가 구글링을 통해서 코드를 보았는데 생각보다 단순해서 아쉬웠다.
구글 풀이
https://mong9data.tistory.com/66
a=input().split('-')
sum=0
for i in a[0].split('+'):
sum=sum+int(i)
for i in a[1:]:
for j in i.split('+'):
sum=sum-int(j)
print(sum)
50+10+20-30+30+40+50을 값으로 입력하면
-로 split 되어 리스트에 저장이 된다
a=['50+10+20', '30', '30+40+50']처럼 저장이 된다.
이후 첫 번째부터 +로 split 하여 각 숫자를 sum에 더해준다.
다음 a [1]부터 끝까지 반복하는데 반복문을 하나 더 넣었다.
첫 번째 만나는 - 전까지의 모든 숫자를 더했으니 다음 나오는 숫자부터는 다 빼줘야 한다.
- 뒤에 있는 숫자는 자동으로 숫자로 분류가 되어서 sum에 빠지고
+뒤에 잇는 숫자는 다시 +로 분류해 숫자로 구분해 sum에 빼야 하여 코드를 이렇게 작성하였다.
느낀 점
for i in a [1:]을 쓰면 a [1]부터 끝까지 모든 값을 반복
for i in a [1:5]를 쓰면 a [1]부터 a [5-1]까지 반복하는 것을 의미한다
728x90