2023-09-14 알고리즘 공부 정리

김재우·2023년 9월 14일
0

이 게시글은 인프런 js 알고리즘 강의를 듣고 공부한 내용을 정리한 게시글입니다. 문제 내용은 저작권 때문에 못 올리는점 양해 바랍니다.

  1. 특정 문자열에서 문자 찾는 문제입니다.
function solution(char, arg) {
  let answer = 0;
  for (let x of char) {
    if (x === arg) answer += 1;
  }
  return answer;
}
console.log(solution('COMPUTERPROGRAMMINGR', 'C'));
  1. 특정 문자열 위주로 split으로 끊어서 length 로 특정 문자가 몇개 있는지 찾는 알고리즘입니다.
// 스플릿을 이용하여 개수로 알파벳 숫자 찾기
function solution(char, arg) {
  let answer = char;
  char.split(arg);
  return answer.length - 1;
}
console.log(solution('COMPUTERPROGRAMMINGR', 'C'));

풀이:해당 알고리즘은 특정 문자가 몇개있는지를 찾는 알고리즘 입니다.
for of 문으로 문자열을 하나하나 세면서 각 문자의 인덱스가 특정 문자와 같다면 answer 을 +1 해주는 식으로 구현한 알고리즘 입니다.
2. 문자열을 split 으로 특정문자마다 끊게 되면 R을 예로 들어서 설명하자면 [ 'COMPUTE', 'P', 'OG', 'AMMING', '' ] 마지막 R 부분은 빈칸이 됩니다. 그렇기 때문에 -1 을 해줍니다.

  1. 대문자 찾는 알고리즘 입니다.
function solution(s) {
  let answer = 0;
  for (let x of s) {
    if (x === x.toUpperCase()) {
      answer++;
    }
  }
  return answer;
}
console.log(solution('KoreaTimeGood'));
  1. ASCII 코드를 이용한 풀이
function solution(s){
let answer =0;
  for (let x of s){
    let num=s.charCodeAt()
   if(num >= 65 && num <=90){
     answer ++
  }
    return answer;
console.log(solution('KoreaTimeGood'));
}

풀이: 해당 알고리즘은 for of 문을 돌린 후 x가 소문자일수도 있고 대문자일수도 있는 x에다가 toUpperCase() 함수를 사용해 대문자로 변환시켜준 값이랑 같게 되면 대문자인걸 알수있으니 x와 대문자로 변환한 값이 같다면 answer 을 증가시키면 대문자의 개수를 찾을 수 있다.
2. 또 다른 방법으로는 ASCII 코드를 이용하는 방법인데
대문자는 65 ~ 90이고 , 소문자는 97부터 122 이다. 이것을 알고 있다면
아스키코드로 변환해서 값을 찾을 수 있다.

3.소문자를 찾아서 대문자로 바꾸는 알고리즘 입니다.
ASCII 코드를 이용해 푼 방법입니다.

function solution(s) {
  let answer = '';

  for (let x of s) {
    let num = x.charCodeAt();
    if (num >= 97 && num <= 122) answer += x.toUpperCase();
    else answer += x;

    // answer += x.toUpperCase();
  }

  return answer;
}
console.log(solution('ItisTimeToStudy'));
profile
프론트엔드 꾸준개발자입니다.

0개의 댓글