CODE KATA #16

12708 단어 TILTIL

가장 긴 문자열

N개의 문자열이 입력되면 그 중 가장 긴 문자열을 출력하는 프로그램을 작성하세요.

나의 풀이

            function solution(s){  
                let num = 5;
                let idx = Number;
                let answer="", max=Number.MIN_SAFE_INTEGER;
                for(i=0; i<num; i++) {
                    if(s[i].length > max) {
                        idx = i;
                        max = s[i].length;
                    }
                }
                answer = s[idx];
                return answer;
            }
            let str=["teacher", "time", "student", "beautiful", "good"];
            console.log(solution(str));

정답 풀이

            function solution(s){  
                let answer="", max=Number.MIN_SAFE_INTEGER;
                for(let x of s){
                    if(x.length>max){
                        max=x.length;
                        answer=x;
                    }
                }
                return answer;
            }
            let str=["teacher", "time", "student", "beautiful", "good"];
            console.log(solution(str));

N개의 문자열이 주어진다는 것에 착안하여, num을 활용하여 문제를 풀었는데, 정답의 경우 N이 주어지지 않더라도 풀 수 있는 과정으로 진행하였다.

Number.MIN_SAFE_INTEGER

Number.MIN_SAFE_INTEGER 상수는 JavaScript에서 안전한 최소 정수값을 나타냅니다. (-(253 - 1))

MIN_SAFE_INTEGER는 Number의 정적 속성이기 때문에, 직접 생성한 Number 객체의 속성이 아니라 Number.MIN_SAFE_INTEGER 형식으로 사용해야 합니다.


가운데 문자 출력

소문자로 된 단어(문자열)가 입력되면 그 단어의 가운데 문자를 출력하는 프로그램을 작성하세 요. 단 단어의 길이가 짝수일 경우 가운데 2개의 문자를 출력합니다.

나의 풀이

            function solution(s){  
                let answer;
                let isOdd = s.length % 2;
                let mid = Math.floor(s.length / 2);
                if(isOdd) answer = s[mid];
                else answer = s[mid-1]+s[mid];
                return answer;
            }
            console.log(solution("good"));

정답 풀이

            function solution(s){  
                let answer;
                let mid=Math.floor(s.length/2)
                if(s.length%2===1) answer=s.substring(mid, mid+1);
                else answer=s.substring(mid-1, mid+1);
                //if(s.length%2===1) answer=s.substr(mid, 1);
                //else answer=s.substr(mid-1, 2);
                return answer;
            }
            console.log(solution("study"));

String.prototype.substr()

인자 두개를 요구하며, 첫번째 인자는 시작 지점 index, 두번째 인자는 시작 지점으로부터의 문자 갯수를 의미한다.

String.prototype.substring()

인자 두개를 요구하며, 첫번째 인자는 시작 지점 index, 두번째 인자는 끝나는 지점 index를 의미한다.(예를 들어, 끝나는 지점 index가 3이라면, 2까지를 반환한다!)

좋은 웹페이지 즐겨찾기