설계
반복분을 통해 문자열 하나씩 확인하여 p 인 경우 +1 , y 인 경우 -1 하여 결과가 0을 기준으로 true, false로 반환
대문자 및 소문자 통일
foreach 사용
git : 과일장수
문제 : https://school.programmers.co.kr/learn/courses/30/lessons/12916
문제 풀이
∙ 문자열 대문자로 통일 uppercased도 결과적으론 문자열 길이만큼 탐색하여 비효율적..?
∙ 문자열 foreach 하여 p, y 카운팅
func solution(_ s:String) -> Bool
{
var ans:Bool = false
var counter: Int = 0
var upperS = s.uppercased()
upperS.forEach{ str in
if(str == "P") {
counter += 1
} else if(str == "Y") {
counter -= 1
}
}
if(counter == 0) {
ans = true
}
return ans
}
solution("sspPyyy")
다른 사람 풀이 분석
프로그래머스 - 전대식 , inuinseoul 님
import Foundation
func solution(_ s:String) -> Bool
{
let string = s.lowercased()
return string.components(separatedBy: "p").count == string.components(separatedBy: "y").count
}
∙ components 는 split 와 동일한 역할을 수행한다.
∙ p, y를 뺀 길이를 비교
'알고리즘 & 문제풀이' 카테고리의 다른 글
코딩 기술 - Comparable (0) | 2023.02.03 |
---|---|
프로그래머스 - L1 문자열 내 마음대로 정렬하기 (0) | 2023.02.03 |
프로그래머스 - L1 최대공약수와 최소공배수 (0) | 2023.01.31 |
Stack - 자료구조 (0) | 2023.01.30 |
프로그래머스 - L1 과일장수 (0) | 2023.01.30 |