전체 글 169

[Javascript] 확장 가능한 계산기 만들기 (생성자 함수)

문제 기능을 "확장"할 수 있는 계산기 객체를 만들어 주는 생성자 함수 Calculator를 작성해봅시다. Calculator는 두 단계를 거쳐 만들 수 있습니다. 첫 번째 단계는 "1 + 2"와 같은 문자열을 받아서 “숫자 연산자 숫자” 형태(공백으로 구분)로 바꿔주는 메서드 calculate(str)를 구현하는 것입니다. 이 함수는 +와 -를 처리할 수 있어야 하고, 연산 결과를 반환해야 합니다. 예시 let calc = new Calculator; alert( calc.calculate("3 + 7") ); // 10 두 번째 단계는 계산기가 새로운 연산을 학습할 수 있도록 해주는 메서드 addMethod(name, func)를 추가해 주는 것입니다. 연산자 이름을 나타내는 name과 인수가 두개인..

Programming/Client 2022.03.23

[프로그래머스] 완주하지 못한 선수 (Level 1)

문제 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 제한사항 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. completion의 길이는 participant의 길이보다 1 작습니다. 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다. 참가자 중에는 동명이인이 있을 수 있습니다. 나의 풀이 너무나도 부끄러운 코드지만 올려보겠다.. 코딩테스트 연습 첫 날이라는 것을 감안해..

Coding test 2022.03.23

[프로그래머스] 수박수박수박수박수박수 (Level 1)

문제 길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다. 제한 조건 n은 길이 10,000이하인 자연수입니다. 나의 풀이 function solution(n) { let answer = ""; for(let i = 1; i { return '수박'.repeat(n/2) + (n%2 === 1 ? '수' : ''); } str.repeat(n) 문자열 n번 반복

Coding test 2022.03.22

[프로그래머스] 짝수와 홀수 (Level 1)

문제 정수 num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Odd"를 반환하는 함수, solution을 완성해주세요. 제한 조건 num은 int 범위의 정수입니다. 0은 짝수입니다. 나의 풀이 function solution(num) { var answer = ''; // 입력값의 짝,홀을 구분하는 조건문 if(num % 2 == 0) { answer = "Even"; } else { answer = "Odd"; } return answer; } 통과 해답 function evenOrOdd(num) { return num % 2 ? "Odd" : "Even"; } // 아래는 테스트로 출력해 보기 위한 코드입니다. console.log("결과 : " + evenOrOdd(2)); console..

Coding test 2022.03.22

[Javascript] 배열 메소드를 이용한 함수 만들기

문제 "my-short-string"같이 여러 단어를 대시(-)로 구분한 문자열을 카멜 표기법을 사용한 문자열 "myShortString"로 변경해주는 함수를 작성해보세요. 대시는 모두 지우고 각 단어의 첫 번째 글자는 대문자로 써주면 됩니다. camelize("background-color") == 'backgroundColor'; camelize("list-style-image") == 'listStyleImage'; camelize("-webkit-transition") == 'WebkitTransition'; 힌트: split을 사용해 문자열을 배열로 바꾼 다음 join을 사용해 다시 합치면 됩니다. 나의 풀이 function camelize(str) { // arr = [my, loving, c..

Programming/Client 2022.03.21

[Javascript] 입력한 숫자의 합 구하는 함수

문제 아래 조건을 만족하는 함수 sumInput()을 작성해 봅시다. prompt 창을 띄워 사용자에게 숫자를 입력해 달라고 요청한 후, 입력받은 값들을 배열에 저장합니다. 숫자가 아닌 값, 혹은 빈 문자열을 입력하거나 'Cancel' 버튼을 누르면 질문을 멈춥니다. 배열 요소의 합을 계산하고 리턴합니다. 주의: 숫자 0은 유효한 숫자이므로, 사용자가 0을 입력하더라도 질문이 멈추지 말아야 합니다. 나의 풀이 prompt 창으로 숫자를 입력받아, 값들을 배열에 저장 숫자가 아닌 값 / 빈 문자열 ('') / cancle 버튼 (null) 을 입력 시 질문이 멈춤 ('0' 입력시 멈추면 안됨) 배열 요소의 합을 계산하고 리턴 function sumInput() { let array = []; let val..

Programming/Client 2022.03.17

[Javascript] 문자열 줄이기 함수

문제 str의 길이를 확인하고, 최대 길이 maxlength를 초과하는 경우 str의 끝을 생략 부호 ("…")로 대체해주는 함수 truncate(str, maxlength)를 만들어봅시다. 새로 만든 문자열의 길이는 maxlength가 되어야 합니다. 함수의 반환 값은 원하는 길이로 줄여진 문자열이 되어야 합니다. 예시 truncate("What I'd like to tell on this topic is:", 20) = "What I'd like to te…" truncate("Hi everyone!", 20) = "Hi everyone!" 나의 풀이 function truncate(str, maxlength) { if (str.length > maxlength) { let result = str.s..

Programming/Client 2022.03.16

[Javascript] 특정 문자 걸러내는 함수 만들기

문제 str에 'viagra’나 'XXX’라는 문자열이 있으면 true를 반환해주는 함수 checkSpam(str)을 만들어보세요. 해당 문자열이 없으면 false를 반환하면 됩니다. 함수는 대·소문자 관계없이 해당 단어를 걸러주어야 합니다. checkSpam('buy ViAgRA now') == true checkSpam('free xxxxx') == true checkSpam("innocent rabbit") == false 나의 풀이 function checkSpam(str) { let upperStr = str.toUpperCase(); return ( upperStr.includes("viagra".toUpperCase()) || upperStr.includes("XXX".toUpperCase(..

Programming/Client 2022.03.16

[Javascript] 문자열의 첫글자만 대문자로 변경 후, 출력

문제 str의 첫 글자를 대문자로 바꿔 반환하는 함수, ucFirst(str)를 만들어보세요. 함수 실행 결과는 아래 예시를 충족해야 합니다. ucFirst("john") == "John"; 나의 풀이 function ucFirst(str) { let result = str[0].toUpperCase(); for (let i = 1; i < str.length; i++) { result += str[i]; } return result; } alert(ucFirst("john")); 정상적으로 출력된다! 해답 function ucFirst(str) { if (!str) return str; return str[0].toUpperCase() + str.slice(1); } alert( ucFirst("joh..

Programming/Client 2022.03.16

[Javascript] 유효한 숫자를 입력할 때까지 반복하는 함수

문제 사용자가 유효한 숫자형 값을 입력할 때까지 계속 입력받는 함수 readNumber 를 만들어보세요. 반환되는 값은 꼭 숫자형 값이어야 합니다. 사용자가 아무 입력도 하지 않거나 '취소’를 누르면 입력받기를 멈추고 null을 반환하세요. 나의 실수 while만을 이용해서 만드려다보니 매우 복잡해졌다 너무 창피한 코드라서 올리지도 못하겠네 ㅠㅠ 해답 function readNumber() { let num; do { num = prompt("Enter a number please?", 0); } while ( !isFinite(num) ); // (isNaN(num))이라고 해도 됨 if (num === null || num === '') return null; return +num; // 숫자형 값이..

Programming/Client 2022.03.15