본문 바로가기

Algorithm & World Class

(39)
(좋은 코드 작성을 위해) countAllCharacters countAllCharacters 문제 문자열을 입력받아 문자열을 구성하는 각 문자(letter)를 키로 갖는 객체를 리턴해야 합니다. 각 키의 값은 해당 문자가 문자열에서 등장하는 횟수를 의미하는 number 타입의 값이어야 합니다. 출력 각 문자를 키로 갖는 객체를 리턴해야 합니다. 주의 사항 빈 문자열을 입력받은 경우, 빈 객체를 리턴해야 합니다. 입출력 예시 let output = countAllCharacters('banana'); console.log(output); // --> {b: 1, a: 3, n: 2} mine 더보기 function countAllCharacters(str) { let obj = {}; for(let i = 0; i < str.length; i++) { let ke..
(좋은 코드의 작성을 위해) printObject printObject 문제 객체를 입력받아 키, 값 쌍을 표현하는 문자열을 리턴해야 합니다. 각 문자열은 한 줄에 키: 값 형태로 구성되며, 각 문자열 끝에는 줄바꿈 문자가 포함되어야 합니다. 출력 string 타입을 리턴해야 합니다. 주의 사항 콜론 다음에 공백을 포함해야 합니다. 각 문자열 끝에 줄바꿈 문자를 포함해야 합니다. mine function printObject(obj) { let result = ''; for(let key in obj) { result = result + key + ': ' + obj[key] + '\n'; } return result; } 내 것만 올린 이유는 레퍼런스와 내 것이 동일하기 때문 주의 사항에서 각 문자열 끝에 줄바꿈 문자 포함하는 것을 표현하는 것이 힘들..
(좋은 코드 작성을 위해) hasRepeatedCharacter hasRepeatedCharacter 문제 문자열을 입력받아 해당 문자열에 중복된 문자(letter)가 존재하는지 여부를 리턴해야 합니다. 입력 인자 1 : str string 타입의 문자열 출력 boolean 타입을 리턴해야 합니다. 주의 사항 이중 반복문(double for loop)을 사용해야 합니다. 빈 문자열을 입력받은 경우에는 false을 리턴해야 합니다. mine function hasRepeatedCharacter(str) { for(i = 0; i < str.length - 1; i++) { for(j = i + 1; j < str.length; j++) { if(str[i] == str[j]) { return true; }//return false; }//return false; } r..
(좋은 코드 작성을 위해) makeMarginalString makeMarginalString 문제 문자열을 입력받아 해당 문자열을 처음부터 한 글자(letter)씩 다시 작성하려고 합니다. 이 때, 한 글자를 추가할 때마다 부분적으로 완성된 문자열을 전부 이어붙인 문자열을 리턴해야 합니다. 주의 사항 이중 반복문(double for loop)을 사용해야 합니다. str.slice, str.substr, str.substring 사용은 금지됩니다. 빈 문자열을 입력받은 경우에는 빈 문자열을 리턴해야 합니다. mine function makeMarginalString(str) { let str1 = ''; let str2 = ''; for(i = 0; i < str.length; i++) { str1 = str1 + str[i]; for(j = 0; j < 1; j..
(좋은 코드 작성을 위해) equalsTen 문제 수를 입력받아 10과 같은지 여부를 리턴해야 합니다. 출력 boolean 타입을 리턴해야 합니다. function equalsTen(num) { return num === 10; } application point 위의 알고리즘은 boolean 타입을 리턴한다. 비교 연산자는 흥미로운 상황을 연출한다. 값을 논리 평가하고 나면 참 혹은 거짓을 반환한다. 일치 연산자(===)는 엄격한(strict) 동등 연산자이다. 자료형이 동등한 여부가 까지 검사하기 때문에 num과 10의 값이나 형이 다를 경우 즉시 false 반환한다. 만일 자료형이나 값의 크기가 동일하다면 true를 반환한다.
(좋은 코드 작성을 위해) fibonacci fibonacci 문제 수(num)를 입력받아 num번째까지 총 num + 1개의 피보나치 수열을 리턴해야 합니다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1입니다. 그 다음 2번째 피보나치 수부터는 바로 직전의 두 피보나치 수의 합으로 정의합니다. 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ... 입력 인자 1 : num number 타입의 num (num은 0 이상의 정수) 출력 배열을 리턴해야 합니다. 주의 사항 반복문(for)문을 사용해야 합니다. 피보나치 수열은 0번부터 시작합니다. mine function fibonacci(num) { const arr = [0, 1]; if(num === 0) return [0]; for(i = 1; i < num ; i+..
(좋은 코드 작성을 위해) createPhoneNumber createPhoneNumber 문제 0-9 사이의 정수를 요소로 갖는 배열을 입력받아 전화번호 형식의 문자열을 리턴해야 합니다. 입력 인자 1 : arr number 타입을 요소로 갖는 배열 arr[i]는 0 이상 9 이하의 정수 배열의 길이는 8 또는 11 출력 string 타입을 리턴해야 합니다. 주의 사항 반복문(for, while) 사용은 금지됩니다. 배열의 길이가 8인 경우, 앞에 [0, 1, 0]이 있다고 가정합니다. mine function createPhoneNumber(arr) { let fn1 = []; let startN1 = []; let endN1 = []; let fn2 = ''; let startN2 = ''; let endN2 = ''; if(arr.length === 8)..