[algorithm/문자열] 인프런 알고리즘 강의 시작 - 문자열에서 특정문자의 개수 (split, 아스키코드)

YS_Study.log·2022년 1월 30일
0

algorithm....!!!!!!

현재 진행중인 코드스테이츠에서 알고리즘을.. 푸는데 어려움을 크게 느꼈다.. ㅜㅜ
버거움에 알고리즘 관련 강의가 있나 찾아보던 중 인프런에 강의가 있어서 살펴보는데

해당 강의는 먼저 문제를 풀어본 후에 선생님은 어떻게 접근했을까 나의 코드와 비교해보고,
이런 문제는 어떻게 접근하는 것이 좋은지 효율적인 방법을 설명해주시는 강의였다!!

현재 애매하게 자바스크립트 문법은 알지만, 활용을 잘 못하는 나에게 딱 맞는 강의하고 생각해서 듣기로 결정했다!

게을러지지말고 끝까지 다 풀어보자!

해당 인프런 강의


문제 : 특정문자 t 가 입력받은 문자열s (길이 100이하) 에 몇개가 존재하나?

내 풀이)

  1. 개수를 셀 변수 count 선언 0 할당(0개니깐 첨에는)
  2. 문자열의 모든 문자르 조회하여 t 문자와 같다면 ?
  3. count ++ 개수를 1개늘린다. 모든 문자를 비교했다면 count 출력한다.

새로 배운 방법 : 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));
profile
느리지만 조금씩 공부하는 중 입니다. 현재 1년 6개월차 신입입니다 ><!

0개의 댓글