CODE KATA #14

8764 단어 TILTIL

문자 찾기

한 개의 문자열을 입력받고, 특정 문자를 입력받아 해당 특정문자가 입력받은 문자열에 몇 개 존재하는지 알아내는 프로그램을 작성하세요.

나의 풀이

            function solution(s, t){
                let answer=0;
                for(let x of s) {
                    if(x === t) answer++;
                }
                return answer;
            }
            
            let str="COMPUTERPROGRAMMING";
            console.log(solution(str, 'R'));

정답 풀이와 동일!

또 다른 풀이

            function solution(s, t){
                let answer=s.split(t).length;
                return answer-1;
            }
            
            let str="COMPUTERPROGRAMMING";
            console.log(solution(str, 'R'));

console.log(s.split(t));를 확인하면, 아래 사진과 같다.

사진 상의 , 자리에 "R"이 들어가면 "COMPUTERPROGRAMMING"이 된다. 따라서, 원하는 문자 "R"의 개수는 answer-1이 된다.

대문자 찾기

한 개의 문자열을 입력받아 해당 문자열에 알파벳 대문자가 몇 개 있는지 알아내는 프로그램 을 작성하세요.

나의 풀이

            function solution(s){         
                let answer=0;
                let cap = s.toUpperCase();
                for(i=0; i<s.length; i++) {
                    if(s[i] === cap[i]) answer++;
                }
                return answer;
            }
            let str="KoreaTimeGood";
            console.log(solution(str));

정답 풀이

            function solution(s){         
                let answer=0;
                for(let x of s){
                    //let num=x.charCodeAt();
                    //if(num>=65 && num<=90) answer++;
                    if(x===x.toUpperCase()) answer++; 
                }

                return answer;
            }

            let str="KoreaTimeGood";
            console.log(solution(str));

궁금한 점

정답 풀이와 비교하여 보았을 때, 큰 차이가 없는 풀이로 보이지만, 서순 상의 차이가 있는 것으로 보인다. 만약 프로그래머스와 같은 문제풀이 페이지에서 두 풀이를 채점했을 때, 어떤 풀이가 더 효율적인 풀이라고 나올지 궁금하다.

좋은 웹페이지 즐겨찾기