[BOJ] 1918 - 후위 표기식

2022. 5. 18. 19:06·알고리즘/Swift

문제

 

풀이 코드

let inputs = readLine()!
var stack = ""
var answer = ""

for op in inputs {
    switch op {
    case "(":
        stack.append(op)
    case ")":
        while !stack.isEmpty && stack.last != "("{
            answer.append(stack.removeLast())
        }
        stack.removeLast()
    case "*", "/":
        while !stack.isEmpty && (stack.last == "*" || stack.last == "/") {
            answer.append(stack.removeLast())
        }
        stack.append(op)
    case "+", "-":
        while !stack.isEmpty && stack.last != "(" {
            answer.append(stack.removeLast())
        }
        stack.append(op)
    default:
        answer.append(op)
    }
}

while !stack.isEmpty {
    answer.append(stack.removeLast())
}
print(answer)

 

풀이 과정

스택을 이용하여 풀이 하였다.

괄호를 만나면 일단 스택에 넣어주고, 닫는 괄호가 나왔을때, 우선순위가 모두 종료된 의미이기 때문에 스택에 있는 연산자를 모두 꺼내 주었고,

곱셈 이나 나눗셈을 만나면 곱셈 나눗셈까지 모두 꺼내 주고, 

덧셈이나 뺄셈이 나오면 괄호 를 만날때 까지 꺼내주었다.

'알고리즘/Swift' 카테고리의 다른 글
  • [Programmers] n^2 배열 자르기
  • [BOJ] 2164 - 카드2
  • [BOJ] 1935 - 후위 표기식2
  • [BOJ] 17299 - 오등큰수
Jeohong
Jeohong
기억 보단 기록을
  • Jeohong
    Chikong Devlog
    Jeohong
  • 전체
    오늘
    어제
    • 분류 전체보기 (186)
      • ---- 개발 컨텐츠 ---- (0)
      • iOS (30)
        • Swift 문법 (1)
        • iOS 개념 (12)
        • HIG (5)
        • SwiftUI (7)
        • UIKit (4)
      • Side Project (0)
      • 개발서적 (4)
        • 객체지향 사실과 오해 (4)
      • 알고리즘 (74)
        • 자료구조 개념 (2)
        • Swift (25)
        • JavaScript (47)
      • ---- 회고 계획 컨텐츠 ---- (0)
      • 계획 및 일기 (10)
      • 회고록 (1)
      • 컨퍼런스 탐방 (1)
      • 미드로 영린이 탈출하기 (1)
      • ---- Previous content ---- (0)
      • Frontend (2)
        • HTML & CSS (2)
      • KITRI 수업 (17)
        • 리눅스 (14)
        • 네트워크 (2)
      • 42seoul (17)
        • Bonr2code (9)
        • 넋두리 (7)
        • 멘토특강 (1)
      • 해킹 실습 (20)
        • 해커스쿨 - F.T.Z (19)
        • WebGoat (1)
      • Tensorflow로 시작하는 NLP (1)
        • 예제 (1)
      • 자연어처리 입문 (1)
        • 이론 (1)
      • 텐서플로로 배우는 딥러닝 (7)
        • 이론 (2)
        • 예제 (5)
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    42서울
    라피신
    스위프트
    1서클
    본과정
    네트워크
    코딩
    hig
    IOS
    boj
    개발자
    SwiftUI
    Algorithm
    swift
    42seoul
    javascript
    백준
    알고리즘
    자료구조
    프로그래머스
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
Jeohong
[BOJ] 1918 - 후위 표기식
상단으로

티스토리툴바