본문 바로가기

알고리즘/Stack

백준 17413 단어 뒤집기 2

조건에 따라서 분기문이 많아져서 짜면서도 하.. 이게 맞나 싶었는데 일단 맞추고 맞춘사람들 보니까 다들 비슷했습니다.

애초에 문제 자체가 많은 조건에 따라서 분기가 달라지기 때문에 이렇게 될 수 밖에.. 🤣

 

코드

let input = Array(readLine()!)
var sentence = ""
var isTagZone = false
var answer = ""

func sol() {

    for i in 0..<input.count {
        
        if input[i] == "<" {
            isTagZone = true
    
            answer += sentence.reversed()
            sentence.removeAll()
            
        } else if input[i] == ">" {
            isTagZone = false
            
            answer += String(input[i])
            continue
        } else if input[i] == " " && !isTagZone {
            answer += sentence.reversed() + " "
            sentence.removeAll()
            
            continue
        } else if i == input.count - 1 {
            sentence += String(input[i])
            answer += sentence.reversed()
            sentence.removeAll()
            
            break
        }
        
        if isTagZone {
            answer += String(input[i])
        } else {
            sentence += String(input[i])
        }
    }
    
    print(answer)
}

sol()
반응형

'알고리즘 > Stack' 카테고리의 다른 글

백준 1874 스택 수열 - Swift  (0) 2022.02.05
백준 11899 괄호 끼워넣기  (0) 2022.01.26
백준 3986 좋은 단어  (0) 2022.01.22
백준 9012 괄호  (0) 2022.01.19
백준 12605 단어순서 뒤집기  (0) 2022.01.18