-
[백준/BOJ] 10799번 : 쇠막대기 _Python알고리즘/백준(BOJ) 2022. 2. 28. 02:56728x90반응형
>문제
>접근방법
레이저를 만나면 조각 개수는 막대 하나 당 '레이저개수+1' 개 가 된다. 막대기의 개수를 확인하려면 스택을 쓰는게 편하겠다.
>알고리즘
1. 스택으로 사용할 s[] 리스트를 만든다.
2. 리스트 ch[]에 괄호들을 입력받는다.
3. ( 만나면 s에 append 한다.
4. 레이저 () 를 만나면 s에 있는 ( 의 개수(s의 길이)를 sum에 더한다.
5. ) 만나면 sum에 1 더하고 pop 시킨다. 이때 )가 레이저()의 ) 일수도 있기 때문에 )를 만났을때 그 전 괄호의 모양이 ( 인 경우는 제외시킨다.
>코드
s = [] ch = [] sum = 0 ch = list(input()) for i in range(len(ch)) : if ch[i] == '(' and ch[i+1] == ')' : sum += len(s) elif ch[i] == '(' : s.append(ch[i]) elif ch[i] == ')' and ch[i-1] != '(': sum += 1 s.pop() print(sum)
>결과
>결론
파이썬은 참 볼수록 놀랍다. 코드 길이에 한 번 놀라고, 채점 속도에 한 번 더 놀란다.
LIST'알고리즘 > 백준(BOJ)' 카테고리의 다른 글
[백준/BOJ] 9935번 : 문자열 폭발 _Python (0) 2022.03.03 [백준/BOJ] 5397번 : 키로거 _Python (0) 2022.03.01 [백준/BOJ] 3986번 : 좋은 단어 _Python (0) 2022.02.26 [백준/BOJ] 10773번 : 제로 _Python (0) 2022.02.26 [백준/BOJ] 9012번 : 괄호 _Python (0) 2022.02.26