Stack2 [Python] 백준 - 10799번 쇠막대기(Stack) ◈ 오류 정정 및 피드백 환영 10799번: 쇠막대기 여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저 www.acmicpc.net 🔎문제 분석 레이저와 막대를 구분하는 방법은 닫는 괄호의 유무이기 때문에 여는 괄호만으로는 판단이 어렵다. 따라서 괄호가 나와도 우선 다른 곳에 저장했다가 다음 시점에서 꺼내서 확인해야 한다. 즉, 스택(Stack)으로 접근하면 된다. 핵심은 레이저에 의해 잘리는 조각의 개수이다. 만약 3개의 막대기가 있는 상황에서 레이저를 만나면 6개가 된다. 닫는 괄호가 나왔을 때 이전 괄호가 여는 괄호라면 즉, 레이저임이 확인된다면 최종 개수에 막대기 개.. 2022. 3. 3. [Python] 백준 - 1918번 후위 표기식(Stack) ◈ 오류 정정 및 피드백 환영 1918번: 후위 표기식 첫째 줄에 중위 표기식이 주어진다. 단 이 수식의 피연산자는 알파벳 대문자로 이루어지며 수식에서 한 번씩만 등장한다. 그리고 -A+B와 같이 -가 가장 앞에 오거나 AB와 같이 *가 생략되는 등의 www.acmicpc.net 🔎문제 분석 연산자가 나오기 전까지는 입력 받은 피연산자를 어떻게 연산해야 할지 알 수 없다. 따라서 연산자를 어떤 곳에 넣어두었다가 특정 조건을 만족하면 다시 꺼내 연산해야 하며, 이를 위해 스택(Stack)으로 접근하면 된다. 피연산자가 나오면 바로 출력한다. if i.isalpha(): res += i 연산자가 나오면 바로 판단하지 말고 우선 스택에 저장한다. 그리고 다음 연산자가 나왔을 때 다시 꺼내 연산이 가능한지를 살.. 2022. 3. 2. 이전 1 다음