안녕하세요. 개발 중인 정주입니다.
오늘은 "프로그래머스(Lv.2) - 짝지어 제거하기" 문제를 풀었습니다.
목차
Github
GitHub - jeongju9216/SwiftAlgorithm: 스위프트 알고리즘
스위프트 알고리즘. Contribute to jeongju9216/SwiftAlgorithm development by creating an account on GitHub.
github.com
문제 링크
코딩테스트 연습 - 짝지어 제거하기
짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙
programmers.co.kr
풀이
이번 문제는 스택을 이용해 푸링가 가능합니다.
한 글자씩 체크를 하면서 top과 똑같으면 pop을, 아니면 push를 합니다.
마지막에 스택이 비어있다면 1을 아니면 0을 반환하면 됩니다.
전체 코드
import Foundation
func solution(_ s:String) -> Int{
var stack: [Character] = []
for letter in s {
if let top = stack.last, top == letter {
stack.popLast()
} else {
stack.append(letter)
}
}
return stack.isEmpty ? 1 : 0
}
아직은 초보 개발자입니다.
더 효율적인 코드 훈수 환영합니다!
공감과 댓글 부탁드립니다.