현재 진행중인 코드스테이츠에서 알고리즘을.. 푸는데 어려움을 크게 느꼈다.. ㅜㅜ
버거움에 알고리즘 관련 강의가 있나 찾아보던 중 인프런에 강의가 있어서 살펴보는데
해당 강의는 먼저 문제를 풀어본 후에 선생님은 어떻게 접근했을까 나의 코드와 비교해보고,
이런 문제는 어떻게 접근하는 것이 좋은지 효율적인 방법을 설명해주시는 강의였다!!
현재 애매하게 자바스크립트 문법은 알지만, 활용을 잘 못하는 나에게 딱 맞는 강의하고 생각해서 듣기로 결정했다!
게을러지지말고 끝까지 다 풀어보자!
문제 : 특정문자 t 가 입력받은 문자열s (길이 100이하) 에 몇개가 존재하나?
내 풀이)
새로 배운 방법 : split(구분자)활용!
split(구분자) : 구분자로 문자열을 구분하여 배열에 담아주는 메소드 (구분자로 문자를 넣어줄 수 있다는 것, 상상을 못했다.)
// 내 코드
function solution(s, t){
let count = 0;
for (let el of s) {
if (el === t) {
count++;
}
}
return count;
}
// split(구분자)활용!
function solution(s, t){
let count = s.split(t).length
// t(R)을 구분자로 문자열을 배열로 나눈다.
// ['COMPUTE', 'P', 'OG', 'AMMING']
// R을 기준으로 3번 나눠진것! 즉 마지막 요소는 R이 없었기 떄문에 -1 을 하면 3이나온다.
return count-1;
}
let s="COMPUTERPROGRAMMING";
console.log(solution(s, 'R'));
문제 : 문자열에서 대문자가 몇개인지?
새로 배운 부분 : 아스키코드 charcodeAt(); 를 활용한 방법을 알려주셨다.
charcodeAt(); : 해당 문자의 아스키코드 넘버를 리턴하는 메소드를 사용하여 문자들에게 지정되어있는 수를 활용한다!
대문자 알파벳은 65 ~ 90까지! 26개
소문자 : (a)97 ~ (z)122
// 아스키코드로 대문자 개수구하기
// 대문자 알파벳은 65 ~ 90까지! 26개
// 소문자 : (a)97 ~ (z)122
function solution(s){
let count=0;
for(let el of s){
let num = el.charcodeAt();
if(num>=65 && num<=90) {
result++
}
}
return count;
}
let str="KoreaTimeGood";
console.log(solution(str));