안녕하세요! 오늘은 프로그래머스 2레벨 짝지어 제거하기 문제를 풀어보겠습니다.
이 문제는 Stack 자료구조를 이용하여 문제를 풀 수 있습니다.
Stack은 first in last out구조로 배열로도 쉽게 구현가능하기 때문에 배열로 문제를 해결하였습니다.
stack에 입력된 문자열을 하나하나 입력해주면서 직전 입력과 같다변 pop해주게 된다면 문제가 해결됩니다.
import Foundation
func solution(_ s:String) -> Int{
var characterStack: [Character] = [Character]()
for character in s {
if !characterStack.isEmpty && characterStack.last! == character {
characterStack.removeLast()
} else {
characterStack.append(character)
}
}
if characterStack.isEmpty {
return 1
}
return 0
}
오늘은 여기까지이고, 좋은 하루 되세요!
'Algorithm Problem Solving > Programmers' 카테고리의 다른 글
[프로그래머스] 2021 KAKAO BLIND RECRUITMENT 메뉴 리뉴얼 with Swift (0) | 2021.12.24 |
---|---|
[프로그래머스] 코딩테스트 연습 2021 Dev-Matching: 웹 백엔드 개발자(상반기) 행렬 테두리 회전하기 with Swift (0) | 2021.12.22 |
[프로그래머스] 깊이/너비 우선 탐색(DFS/BFS) 타겟 넘버 with Swift (0) | 2021.12.20 |
[프로그래머스] 코딩테스트 연습 힙(Heap) 더 맵게 with C++ (0) | 2021.12.17 |
[프로그래머스] 코딩테스트 연습 Summer/Winter Coding(2019) 멀쩡한 사각형 with Swift (0) | 2021.12.15 |