반응형

분류 전체보기 269

[JS] 알고리즘 기초 정복 6번 - 홀수

문제 6번 7개의 자연수가 주어질 때, 이들 중 홀수인 자연수들을 모두 골라 그 합을 구하고, 고른 홀수들 중 최소값을 찾는 프로그램을 작성하세요. 예를 들어, 7개의 자연수 12, 77, 38, 41, 53, 92, 85가 주어지면 이들 중 홀수는 77, 41, 53, 85이므로 그 합은 77 + 41 + 53 + 85 = 256 이 되고, 41 < 53 < 77 < 85 이므로 홀수들 중 최소값은 41이 된다. 🍄 입력설명 첫 번째 줄에 자연수 7개가 주어진다. 주어지는 자연수는 100보다 작다. 홀수가 한 개 이상 반드시 존재한다. 🍄 출력설명 첫째 줄에 홀수들의 합을 출력하고, 둘째 줄에 홀수들 중 최소값을 출력한다. 🍄 입력예제 1 12 77 38 41 53 92 85 🍄 출력예제 1 256 4..

알고리즘 2021.07.02

[JS] 알고리즘 기초 정복 5번 - 최솟값 구하기

문제 5번 7개의 수가 주어지면 그 숫자 중 가장 작은 수를 출력하는 프로그램을 작성하세요. 🍄 입력설명 첫 번째 줄에 7개의 수가 주어진다. 🍄 출력설명 첫 번째 줄에 가장 작은 값을 출력한다. 🍄 입력예제 1 5 3 7 11 2 15 17 🍄 출력예제 1 2 정답 코드 1) for문 이용하기 function solution(arr) { let answer, min = Number.MAX_SAFE_INTEGER; //가장 큰 임의의 숫자 for (let i = 0; i < arr.length; i++) { if (arr[i] < min) min = arr[i]; } answer = min; return answer; } let arr = [5, 7, 1, 3, 2, 9, 11]; console.log(..

알고리즘 2021.07.02

[JS] 알고리즘 기초 정복 4번 - 1부터 N까지 합 출력하기

문제 4번 자연수 N이 입력되면 1부터 N까지의 합을 출력하는 프로그램을 작성하세요. 🍄 입력설명 첫 번째 줄에 20이하의 자연수 N이 입력된다.. 🍄 출력설명 첫 번째 줄에 1부터 N까지의 합을 출력한다. 🍄 입력예제 1 6 🍄 출력예제 1 21 🍄 입력예제 2 10 🍄 출력예제 2 55 정답 코드 function solution(n) { let answer = (n * (n + 1)) / 2; return answer; } console.log(solution(10)); //55출력 function solution(n) { let answer = 0; for (let i = 1; i

알고리즘 2021.07.02

[JavaScript] 스터디 7일차_ 클로저 (2) 활용

✨ 클로저의 활용 사례 1-1-1. 콜백함수 내부에서 외부 데이터를 사용하고자 할 때 _ 내부함수로 선언해서 외부변수 직접 참조(클로저O) - B 콜백 함수는 fruit 이라는 외부 변수를 참조하므로 클로저 생성, B함수가 참조할 예정인 fruit는 A 함수가 종료되어도 GC(가비지컬렉터)의 수거대상에서 제외된다. var fruits = ['apple','banana', 'peach']; var $ul = document.createElement('ul'); fruits.forEach(function (fruit){ //A var $li = document.createElement('li'); $li.innerText = fruit; //fruit을 매개변수로 받아서 사용하기 때문에 외부변수 사용이 아님..

[JS] 알고리즘 기초 정복 3번 - 연필개수

문제 3번 연필 1 다스는 12자루입니다. 학생 1인당 연필을 1자루씩 나누어 준다고 할 때 N명이 학생수를 입력하면 필요한 연필의 다스 수를 계산하는 프로그램을 작성하세요. 🍄 입력설명 첫 번째 줄에 1000 이하의 자연수 N이 입력된다. 🍄 출력설명 첫 번째 줄에 필요한 다스 수를 출력합니다. 🍄 입력예제 1 25 🍄 출력예제 1 3 🍄 입력예제 2 178 🍄 출력예제 2 15 정답 코드 //아 너무 간단하게 풀 수 있네... function solution(n) { let answer = Math.ceil(n / 12); return answer; } console.log(solution(25)); //3 출력 내가 푼 코드 function solution(n) { let answer; if (n ..

알고리즘 2021.06.28

[JS] 알고리즘 기초 정복 2번 - 삼각형 판별하기

문제 2번 길이가 서로 다른 A, B, C 세 개의 막대 길이가 주어지면 이 세 막대로 삼각형을 만들 수 있으면 “YES"를 출력하고, 만들 수 없으면 ”NO"를 출력한다. 🍄 입력설명 첫 번째 줄에 100이하의 서로 다른 A, B, C 막대의 길이가 주어진다. 🍄 출력설명 첫 번째 줄에 “YES", "NO"를 출력한다. 🍄 입력예제 1 6 7 11 🍄 출력예제 1 YES 🍄 입력예제 2 13 33 17 🍄 출력예제 2 NO 두 변의 길이의 합은 나머지 한 변보다 항상 크다는 것을 알면 풀 수 있다! 정답 코드 function solution(a, b, c) { let answer = "YES", max; let sum = a + b + c; //합을 구해서 나머지 두 변의 길이 합을 구해줄 것 if (..

알고리즘 2021.06.28

[JS] 알고리즘 기초 정복 1번 - 세 수 중 최솟값 찾기

문제 1번 세 수 중 최솟값 100이하의 자연수 A, B, C를 입력받아 세 수 중 가장 작은 값을 출력하는 프로그램을 작성하세요. (정렬을 사용하면 안됩니다) 🍄 입력설명 첫 번째 줄에 100이하의 세 자연수가 입력된다. 🍄 출력설명 첫 번째 줄에 가장 작은 수를 출력한다. 🍄 입력예제 6 5 11 🍄 출력예제 5 정답 코드 function solution(a, b, c) { let answer; if (a < b) answer = a; else answer = b; if (c < answer) answer = c; return answer; } console.log(solution(6, 5, 11)); //5 출력

알고리즘 2021.06.28

[JavaScript] 스터디 6일차_ 클로저 (1) 개념 및 메모리 관리

1. 클로저의 의미 및 원리 이해 MDN에서 정의하는 클로저는 "클로저는 함수와 그 함수가 선언될 당시의 Lexical Environment의 상호관계에 따른 현상" 어떤 함수 A에서 선언한 변수 a를 참조하는 내부변수 B를 외부로 전달할 경우, A의 실행 컨텍스트가 종료된 이후에도 변수 a가 사라지지 않는 현상 1) let 선언 변수는 호이스팅 되므로 렉시컬 환경에는 올라가지만 초기화는 되지 않는다. 2) 함수선언은 바로 초기화됨 3) let amy에서(1번째 줄) 할당이 안되어있기 때문에 undefined임 4) amy = 29 로 할당됨 5) plusAge(1)에서 새로운 렉시컬 환경이 생성된다. 현재 내부 렉시컬 환경은 외부 렉시컬 환경을 참조한다. (내부 렉시컬 환경에서 amy를 찾을 수 없어 ..

[TypeScript] 타입스크립트 공부 - 1일차(시작하기)

1. TypeScript 전역 설치 npm install typescript -g 전역 설치 후, js파일로 컴파일하려고 하자 에러가 발생했다. tsc hello.ts 스택오버플로우에서 아래의 types/node를 설치하라고 하여 설치했더니 에러가 사라지고 hello.js가 생성되었다. npm install -D @types/node 2. 타입스크립트란? - 오픈소스 프로그래밍 언어 - 자바스크립트의 상위 집합으로 ECMA 스크립트의 최신 표준을 지원(js가 바로 ts로 변환 가능) - 정적인 언어로 컴파일 시간에 타입을 검사 🌟 타입스크립트의 장점? - 강력한 타입으로 대규모 애플리케이션 개발에 용이(타입 실수를 방지할 수 있음) - 유명한 자바스크립트 라이브러리와 편리하게 사용 가능(제이쿼리, 모먼트..

[JavaScript] 스터디 5일차_ 콜백 함수

1. 콜백함수 - 어떤 함수 X를 호출하면서 "특정조건" 일 때, 함수 Y를 실행해서 나에게 알려달라는 요청을 보낸다. 이 요청을 받은 함수 X의 입장에서는 해당 조건이 갖춰줬는지 여부를 스스로 판단하고 Y를 직접 호출한다. 즉, 다른 코드(함수 또는 메서드)에게 인자로 넘겨줌으로써 그 제어권도 함께 위임한 함수이다. 콜백함수를 위임받은 코드는 자체적인 내부 로직에 의해 이 콜백 함수를 적절한 시점에 실행한다. 2. 제어권 2-1) 호출시점 - 아래 예시에서, setInterval에 전달한 첫번째 인자인 cbFunc 함수가 콜백함이다. setInterval 함수는 제어권을 넘겨받고, 스스로 판단에따라 0.3초마다 이 익명함수를 실행한다. 즉 setInterval은 콜백 함수 호출 시점에 대한 제어권을 가..