BOJ 1918 후위 표기식 swift

2025. 5. 26. 14:56·알고리즘
문제 링크 : https://www.acmicpc.net/problem/1918

 

 

 

문제 해설

중위 표기식을 후위 표기식으로 변경하는 문제입니다.

중위 표기식을 후위 표기식으로 변경하는 절차를 조건문으로 작성하는 것이 정답입니다.

  • 피연산자는 바로 출력합니다.(코드에서는 String var에 추가하였습니다.)
  • 연산자는 스택에 push합니다.("+", "-", "*", "/" 등)
  • 여는 괄호는 무조건 push합니다. "("
  • 닫는 괄호가 나오면 여는 괄호를 만날 때까지 스택에서 pop합니다.(주의: "(" 여는 괄호도 제거해야 합니다.)
  • 수식이 끝나면 스택에 남은 연산자를 pop합니다.

 

코드

더보기
import Foundation

let input = readLine()!.map{ String($0) }

var result = ""
var stack = [String]()

for i in input {
    if i == "+" || i == "-" || i == "*" || i == "/" || i == "(" || i == ")" {
        if stack.isEmpty {
            stack.append(i)
        } else {
            if i == "(" {
                stack.append(i)
            } else if i == ")" {
                while stack.last != "(" {
                    result += stack.removeLast()
                }
                stack.removeLast()
            } else if i == "*" || i == "/" {
                while stack.last == "*" || stack.last == "/" {
                    result += stack.removeLast()
                }
                stack.append(i)
            } else {
                while stack.last == "+" || stack.last == "-" || stack.last == "*" || stack.last == "/" {
                    result += stack.removeLast()
                }
                stack.append(i)
            }
        }
    } else {
        result += i
    }
}

while !stack.isEmpty {
    result += stack.removeLast()
}

print(result)

 

'알고리즘' 카테고리의 다른 글
  • BOJ 2449 전구 swift
  • BOJ 1799 비숍
  • BOJ 1865 웜홀 swift
  • BOJ 2110 공유기 설치 swift
GwanSon
GwanSon
버그는 도전, 코드는 해결. 열정있는 개발을 하자.
  • GwanSon
    관슨의 개발일지
    GwanSon
  • 전체
    오늘
    어제
    • 분류 전체보기 (56)
      • iOS (3)
      • swift (15)
      • UIKit (0)
      • swiftUI (2)
      • 알고리즘 (8)
      • CS (8)
      • 면접 (11)
      • Flutter (4)
      • 회고 (2)
      • 잡담 (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    tuist
    모듈화
    ios
    네이버 부스트캠프 후기
    Swift
    2025 토스 Next
    후기
    토스
    boj
    챌린지
    네이버 부스트캠프
    부스트캠프
    백준
    부스트캠프 10기
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
GwanSon
BOJ 1918 후위 표기식 swift
상단으로

티스토리툴바