일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- pwnable.kr
- C
- OSI
- 미로 탐색 알고리즘
- War Game
- Stack
- SWiFT
- 파일 시스템
- 파이썬
- ftz
- HTML
- windosws wbcs
- Java
- System
- c언어
- 정렬 알고리즘
- level13
- ftz level13
- 자료구조
- 암호수학
- 두근두근 자료구조
- windosw 문자열
- LoB
- 큐
- 백준
- 스택
- PHP
- web
- 재귀
- 시간복잡도
Archives
- Today
- Total
나의 기록, 현진록
[Swift] 프로그래머스 코딩테스트 연습 > 짝지어 제거하기 본문
Programming/Algorithm & Data Structure
[Swift] 프로그래머스 코딩테스트 연습 > 짝지어 제거하기
guswlsdk 2022. 5. 27. 11:32반응형
문제풀이
스택을 이용하면 O(n)으로 해결 할 수 있다.
정확성과 효율성이 나뉘는 문제인데 정확성은 해결됐지만 효율성은 여러 시도가 있었다.
문자열을 배열 형태로 바꿔주는 방식도 map을 이용하면 시간초과가 난다. Array(s)를 이용하니 효율성도 해결되었다.
코드
import Foundation
func solution(_ s:String) -> Int{
let sArr = Array(s)
var stack = [Character]()
for i in sArr{
if !stack.isEmpty && stack.last == i{
stack.removeLast()
}else{
stack.append(i)
}
}
return stack.isEmpty ? 1 : 0
}
반응형
'Programming > Algorithm & Data Structure' 카테고리의 다른 글
[Swift] 프로그래머스 2022 KAKAO BLIND RECRUITMENT신고 결과 받기 (0) | 2022.06.27 |
---|---|
[Swift] 프로그래머스 코딩테스트 연습>괄호 변환 (0) | 2022.05.31 |
[Swift] 프로그래머스 2021 Dev-Matching: 웹 백엔드 개발자(상반기) > 행렬 테두리 회전하기 (0) | 2022.05.19 |
[Swift] 프로그래머스 Summer/Winter Coding(2019) > 멀쩡한 사각형 (0) | 2022.05.18 |
[Swift] 프로그래머스 2019 KAKAO BLIND RECRUITMENT > 오픈채팅방 (0) | 2022.05.17 |