목록CODE STATES 44/데일리 코딩(알고리즘) (4)
코로 넘어져도 헤딩만 하면 그만
09. ABCheck 문자열을 입력받아 문자열 내에 아래 중 하나가 존재하는지 여부를 리턴해야 합니다. 'a'로 시작해서 'b'로 끝나는 길이 5의 문자열 'b'로 시작해서 'a'로 끝나는 길이 5의 문자열 대소문자를 구분하지 않습니다. 공백도 한 글자로 취급합니다. 'a'와 'b'는 중복해서 등장할 수 있습니다. function ABCheck(str) { // 문자열을 입력받아 문자열 내에 아래 중 하나가 존재하는지 여부를 리턴해야 합니다. // 'a'로 시작해서 'b'로 끝나는 길이 5의 문자열 // 'b'로 시작해서 'a'로 끝나는 길이 5의 문자열 //'a'와 'b'는 중복해서 등장할 수 있습니다. //대소문자를 구분하지 않습니다. //대소문자를 구분하지 않으므로 .toUpperCase 를 써서 ..
06_letterCapitalize 문자열을 입력받아 문자열을 구성하는 각 단어의 첫 글자가 대문자인 문자열을 리턴해야 합니다. 단어는 공백으로 구분합니다. 연속된 공백이 존재할 수 있습니다. 빈 문자열을 입력받은 경우, 빈 문자열을 리턴해야 합니다. function letterCapitalize(str) { let words = str.split(' '); for (let i = 0; i 0) { words[i] = words[i][0].toUpperCase() + words[i].substr(1); } } str = words.join(' '); return str; } 주어진 문자열을 우선 공백을 기준으로 두고 나누었고..
3. 거듭제곱 여부 확인하기 문제: 수를 입력받아 2의 거듭제곱인지 여부를 리턴해야 합니다. boolean 타입을 리턴해야 합니다. 반복문(while)문을 사용해야 합니다. 2의 0승은 1입니다. Number.isInteger, Math.log2, Math.log 사용은 금지됩니다. function powerOfTwo(num) { if (num === 1) { return true; } //1은 2의 0승이니까... if (num % 2) { return false; } //짝수이면 이 조건문을 실행하지 말되 홀수면 false를 리턴. let powered = 2; while (powered < num) { powered = powered * 2; } //초기값 2로 두고 2를 계속 곱하다가 같아지면 t..
1. 배열을 입력받아 차례대로 배열의 첫 요소와 마지막 요소를 키와 값으로 하는 객체를 리턴해야 합니다. 빈 배열을 입력받은 경우, 빈 객체를 리턴해야 합니다. 입력으로 받는 배열을 수정하지 않아야 합니다. 이 문제는 배열을 객체로 만드는 것이 포인트라고 생각한다. arr[0]과 arr[length-1]로 배열의 처음과 마지막을 뽑는 것까지는 수월했는데, 이것을 객체로 밀어넣는 상황에서 고민을 하기 시작했다. function transformFirstAndLast(arr) { // 배열을 입력받아 차례대로 배열의 첫 요소와 마지막 요소를 // 키와 값으로 하는 객체를 리턴해야 합니다. //빈 배열을 입력받은 경우, 빈 객체를 리턴해야 합니다. //키와 값으로 하는 '객체'리턴하기 if (arr.lengt..