프로그래머스 - 짝지어 제거하기 feat. 스택
·
Algorithm/programmers
시간초과 문제스택이 아닌 String 으로 문제를 접근하였을 때 시간 초과가 발생하였습니다.while 문 내부에 for 문으로 데이터를 계속 수정하는 방식은 입력값이 클 경우에는 매우 효율적이지 못했습니다.import Foundationfunc solution(_ s:String) -> Int{ var answer = s var sets = Set(answer.map { Character(String($0)) }) while true { let previous = answer for set in sets { answer = answer.replacingOccurrences(of: "\(set)\(set)", with: "") } ..
Swift - 백준 4949번 균형잡힌 세상
·
Algorithm/Baekjoon
이번 문제는 스택을 구현해서 쉽게 해결할 수 있습니다 import Foundationvar line = readLine()!var arr: [Character]while line != "." { arr = .init() for i in line { if i == "(" || i == "[" { arr.append(i) } else if i == ")" { if arr.last == "(" { arr.removeLast() } else { arr.append(i) break } } else if i =..
Swift - 백준 10773번 제로
·
Algorithm/Baekjoon
제로 문제는 스택으로 구현하면 쉽게 풀 수 있습니다  0이 아니면 push 0이면 pop으로 구현할 수 있겠습니다.let num = Int(readLine()!)!var arr: [Int] = []for _ in 1...num { let tmp = Int(readLine()!)! if tmp == 0 { arr.removeLast() } else { arr.append(tmp) }}var sum = 0for i in arr { sum += i}print(sum)
Swift - 백준 10828번 스택
·
Algorithm/Baekjoon
스택이란 FILO(First In Last Out)인 특징을 갖고 있는 자료 구조입니다 Queue 큐와 마찬가지로 Swift Foundation 에서는 따로 제공하지 않으므로 직접 다음과 같이 구현할 수 있겠습니다 스택이란?쉽게 생각한다면 스택이란 값을 차곡차곡 쌓는다는 것이라고 생각할 수 있겠습니다. 롤을 해보셨다면 나서스 스택을 가지고 좀 더 쉽게 외울 수 있겠습니다. 나서스 q로 스택을 쌓은 다음 뚝빼기를 때린다면 가장 마지막까지 쌓은 스택의 값이 추가로 들어갑니다. 대략 이렇게 생각하면 조금 편하게 외울 수 있을 것 같습니다.  문제 풀이push: 가장 마지막에 새로운 값을 추가하여 값을 차곡 쌓습니다pop: 가장 마지막에 들어온 값을 없애야 하므로 removeLast 메서드를 사용합니다size:..
ytw_developer
'swift 스택' 태그의 글 목록