Where who wants to meet someone
문자열이 몇 번 등장하는지 세기 본문
728x90
문제
https://school.programmers.co.kr/learn/courses/30/lessons/181871
내 답안 / 다른 사람들의 답안
import Foundation
func solution(_ myString:String, _ pat:String) -> Int {
let myString = myString.map { String($0) }
var result = 0
for i in 0...(myString.count - pat.count) {
if myString[i...i + (pat.count - 1)].joined() == pat {
result += 1
}
}
return result
}
- for문으로 가용한 범위를 돌면서, pat 글자 수만큼 배열에서 추출한 값을 joined()한 값과 pat가 맞는지 비교하고 동일한 문자열이라면 result 값을 증가시킨 뒤 반환
// 풀이 1
import Foundation
func solution(_ myString:String, _ pat:String) -> Int {
var s = Array(myString)
var ans = 0
for i in 0..<s.count-pat.count+1 where s[i..<i+pat.count].map{String($0)}.joined() == pat{
ans += 1
}
return ans
}
// 풀이 2
import Foundation
func solution(_ myString:String, _ pat:String) -> Int {
let myString = Array(myString)
return (0...myString.count - pat.count).filter { String(myString[$0..<($0+pat.count)]) == pat }.count
}
- where절로 조건을 수행한 풀이 방법과 범위에 filter를 걸어 수행한 풀이 방법이 있었다.
점수: +3
'프로그래머스 알고리즘 문제 기록 > 코딩 기초 트레이닝' 카테고리의 다른 글
두 수의 합 (0) | 2024.02.18 |
---|---|
커피 심부름 (0) | 2024.02.16 |
문자열 묶기 (0) | 2024.02.14 |
특정 문자열로 끝나는 가장 긴 부분 문자열 찾기 (0) | 2024.02.14 |
배열 만들기 6 (0) | 2024.02.13 |