이 게시글은 인프런 js 알고리즘 강의를 듣고 공부한 내용을 정리한 게시글입니다. 문제 내용은 저작권 때문에 못 올리는점 양해 바랍니다.
function solution(char, arg) {
let answer = 0;
for (let x of char) {
if (x === arg) answer += 1;
}
return answer;
}
console.log(solution('COMPUTERPROGRAMMINGR', 'C'));
// 스플릿을 이용하여 개수로 알파벳 숫자 찾기
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 을 해줍니다.
function solution(s) {
let answer = 0;
for (let x of s) {
if (x === x.toUpperCase()) {
answer++;
}
}
return answer;
}
console.log(solution('KoreaTimeGood'));
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'));