-
백준 1981 후위 표기식Algorithm/BOJ 2021. 4. 26. 23:46728x90
출처: www.acmicpc.net/problem/1918
분류: 스택
접근방식
말 그대로 후위표기식 변환에 관한 문제였습니다.
설명은 따로 포스팅으로 대체하겠습니다 :)
해결방법
var str = readLine()! var result = "" var oper = "" for char in str { if char == "(" { oper.append("(") } else if char == ")" { while let opr = oper.popLast() { guard opr != "(" else { break } result.append(opr) } } else if char == "*" || char == "/" { guard !oper.isEmpty else { oper.append(char); continue } while let opr = oper.last, (opr == "*" || opr == "/") { result.append(oper.popLast()!) } oper.append(char) } else if char == "+" || char == "-" { guard !oper.isEmpty else { oper.append(char); continue } while let opr = oper.popLast() { guard opr != "(" else { oper.append(opr); break } result.append(opr) } oper.append(char) } else { result.append(char) } } print(result + oper.reversed())
배운점
'Algorithm > BOJ' 카테고리의 다른 글
백준 14719 빗물 (0) 2021.05.02 백준 1922 네트워크 연결 (0) 2021.04.30 백준 2493 탑 (0) 2021.04.22 백준 1958 LCS 3 (0) 2021.04.22 백준 11049 행렬 곱셈 순서 (0) 2021.04.21