문제
문제 링크 : Determine if String Halves Are Alike
풀이
var halvesAreAlike = function(s) {
const vowels = ['a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U']
const a = s.slice(0,s.length/2)
const b = s.slice(s.length/2)
let cntA = 0
let cntB = 0
for(let i=0; i<s.length/2; i++) {
if(vowels.includes(a[i])) cntA++
if(vowels.includes(b[i])) cntB++
}
return cntA === cntB
};
- 문자열 s를 반으로 나눠 각각의 모음의 개수가 일치하는지 확인
- Runtime 54ms, Memory 42.77MB
다른 풀이
var halvesAreAlike = function(s) {
const vowels = ['a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'];
let ct=0;
const n=s.length;
for(let i=0;i<n;i++){
if(vowels.includes(s[i])){
if(i < n/2)
ct++;
else
ct--;
}
}
return ct === 0;
};
- 같은 방식인데 좀 더 효율적인 풀이
- Runtime 39ms, Memory 42.17MB