-
[알고리즘/자바스크립트] 꼬리에 붙은 0 (팩토리얼과 Trailing Zero)Algorithm 2019. 5. 12. 20:38
[문제] 주어진 숫자의 팩토리얼을 계산한 값에서, 마지막에 연속되어 붙어있는 0이 몇개인지 반환해주는 함수를 완성해주세요! (팩토리얼을 계산하지 않고 구하기!) 참고로, N 팩토리얼이란 다음과 같은 것을 말합니다. (factorial은 !로 표기합니다. 더 많은 내용은 http://mathworld.wolfram.com/Factorial.html를 참고해주세요) N! = 1 * 2 * 3 * ... * N 예를들어, trailingZeros(6) = 1 왜냐하면, 6! = 1 * 2 * 3 * 4 * 5 * 6 = 720 --> 1 , 끝에 1개의 0이 있습니다. trailingZeros(12) = 2 12! = 479001600 --> 2, 꼬리에 2개의 0이 있습니다. @param {number} n..
-
[C언어/Day1] C언어 수업정리 (정보처리기사, 실기)Backend 2019. 5. 12. 15:38
정보처리기사 실기반 수강을 시작하면서 C언어 기초를 배우게 되었다. 아마 컴퓨터공학 관련 학과를 나왔다면 아마 필수적으로 공부했을 과목인데, 나는 비전공이라서 이번 기회에 처음 접하게 되었다. 내가 지금 공부하고 있는 자바스크립트와 가장 크게 다른 점은 자바스크립트는 인터프리터 언어이고 C언어는 컴파일러 언어라는 점이다. 이 부분에 대해서는 아래 글에 좀 더 자세하게 설명되어 있다. https://im-developer.tistory.com/77 [JS/호이스팅] Interpreted Language인 자바스크립트의 호이스팅(Hoisting)에 대하여 자바스크립트, 인터프리터 언어(Interpreted Language) 보통 우리가 사용하는 프로그래밍 언어는 고급 언어(High Level Language..
-
[알고리즘/자바스크립트] 괄호 짝 찾기 (Valid Braces)Algorithm 2019. 5. 3. 17:28
-해당 문제는 codewars사이트의 level6 문제입니다. (1~8단계 중 8단계가 가장 쉬운 레벨)- [문제] 괄호들로 이루어진 string을 입력받아서, 괄호들의 순서가 올바른지 판단해주는 함수를 완성해주세요! 괄호들은 ()와 {}와 [], 이렇게 총 3가지 종류가 있습니다. 괄호들은 자기와 짝이 맞는 괄호를 만나야만 합니다. 다음의 예를 봐주세요, validBraces("(){}[]") // => True validBraces("([{}])") // => True validBraces("(}") // => False validBraces("[(])") // => False validBraces("[({})](]") // => False * @param {string} braces * @retur..
-
[JS/호이스팅] Interpreted Language인 자바스크립트의 호이스팅(Hoisting)에 대하여Frontend 2019. 5. 3. 13:16
자바스크립트, 인터프리터 언어(Interpreted Language) 보통 우리가 사용하는 프로그래밍 언어는 고급 언어(High Level Language), 컴파일러 언어라고도 한다. 즉, 기계가 이해할 수 있는 0과 1로 표현된 2진수 언어가 아니라 인간이 이해하기 쉬운 자연어와 비슷한 구조를 갖는 언어를 말한다. 이러한 고급 언어를 사용하여 프로그래밍을 하면 반드시 기계어로 번역하는 과정을 필수적으로 거쳐야 하는데, 그 과정에서 사용되는 번역기에는 두 종류가 있다. 바로 컴파일러와 인터프리터이다. 컴파일러를 사용하는 고급 언어를 우리는 Compiled Language라고 한다. 대표적인 Compiled Language에는 C언어가 있다. 컴파일러를 사용하면 프로그램 전체를 목적 프로그램으로 번역한 ..
-
[JS/스코프] 자바스크립트 스코프(scope)와 즉시실행함수(IIFE)Frontend 2019. 5. 2. 16:02
스코프(scope) 스코프란 일종의 "범위"와 같은 것이다. 어떤 변수를 선언하였을 때, 그 변수에 접근할 수 있는 범위라고 생각하면 쉽니다. 스코프에는 Global(전역)과 Local(지역)이 있는데, Global scope는 말 그대로 어떤 함수에 종속되어있지 않고 어디서나 접근할 수 있는 전역 범위를 말한다. 반면, Local scope는 어떤 함수나 블록 단위로 국한되는 범위를 말한다. 만약에 Global scope에 어떤 변수가 선언되었다면, 그 변수는 Global Variable(전역 변수)가 된다. 반면, 어떤 변수가 Local scope에 선언되었다면, Local Variable(지역 변수)가 된다. 위 그림에서 파란색 영역이 Global scope, 보라색 영역이 Local scope이다..
-
[알고리즘/자바스크립트] 페이지 카운트 (Page Count)Algorithm 2019. 5. 1. 19:14
[문제] Viserion은 예민한 사람들이 많은 도서관에서 공부를 합니다. Viserion은 한번에 특정 페이지를 열지 못하고, 교과서의 맨 앞장이나 맨 뒷장부터 차례로 넘길 수만 있습니다. 그래서 책을 넘기는 소리를 적게 내는 방법을 고민해야 합니다. 또한 항상 한번에 한페이지만 넘길 수 있습니다. Viserion이 책 앞장을 펼치면, 항상 1페이지는 오른쪽에 있습니다. * _________________________________ * | : | * | : | * | : | * | : 1page | * |_______________ : _______________| 1페이에서 한장을 넘기면, 다음 장에는 2페이지와 3페이지가 있습니다. * _________________________________ ..
-
[알고리즘/자바스크립트] 영역 안에 떨어진 사과와 오렌지 개수 구하기 (Count Apples and Oranges)Algorithm 2019. 5. 1. 15:10
[문제] 다음과 같은 흑백 세상에 오렌지 나무와 사과나무가 있습니다. a는 사과나무의 위치를, b는 오렌지 나무의 위치를 나타냅니다. 두 나무 사이에는 Vanilla House가 있고, Vanilla House의 영역은 s에서부터 t까지로 정의됩니다. * -----a---------------------------------s---------------t----------------------------------b-----* * * * ___________ * * * * * | Vanilla | * * * | | House | | * -----a---------------------------------s---------------t----------------------------------b----..
-
[알고리즘/자바스크립트] 합해서 나눠떨어지는 쌍 찾기 (Divisible Sum Pairs)Algorithm 2019. 5. 1. 14:23
[문제] 정수로 이루어진 배열 ar과 양의 정수 k가 있습니다. 다음과 같은 조건을 만족하는 배열 원소들의 쌍의 개수를 반환하는 함수를 작성해주세요. i < j 이다. ar[i] + ar[j] 는 k의 배수이다. 예를들어, ar = [1, 2, 3, 4, 5, 6] 이고 k = 5 일때, 조건을 만족하는 쌍은 [1, 4], [2, 3], [4, 6] 세 쌍입니다. 그러므로 결과값은 3이 나와야 합니다. ar = [1, 2, 3, 4, 5, 6] 이고 k = 5 일때 배열을 1부터 6까지 차례로 돌리는데, 1의 순서가 왔을 때, 1에다가 2, 3, 4, 5, 6을 각각 더해서 5의 배수인지 판별하고 2의 순서가 왔을 떄는 3, 4, 5, 6을 각각 더해서 5의 배수인지 판별, 3의 순서가 왔을 때는 4, ..
-
[알고리즘/자바스크립트] 컵 돌리기 게임 (Find Key)Algorithm 2019. 5. 1. 13:11
[문제] 세 개의 뒤집힌 컵 중 한 개의 컵 안에 열쇠가 있습니다. 당신이 열쇠를 찾기 위해 컵을 들어올리려는 순간, Drogon이 빠르게 컵의 위치를 뒤섞기 시작합니다. 컵의 교환이 끝났을 때, 열쇠가 들어있는 컵을 찾아야 합니다. 컵의 위치는 인덱스로 표현됩니다. (0부터 시작) 키가 들어있는 컵의 인덱스와 교환된 컵의 인덱스를 나타내는 배열(swaps)을 입력으로 받습니다. 예를들어, 열쇠가 들어있는 컵의 처음 위치가 `0`이고 컵이 교환되는 순서가 다음과 같다면 [(0, 1), (1, 2), (1, 0)] 첫 교환때 열쇠가 있는 컵은 0 에서 1로 이동하게 됩니다. 두번째 교환때 열쇠가 있는 컵은 1 에서 2로 이동하게 됩니다. 마지막 교환때 1에 있는 컵이 0으로 가지만, 열쇠가 있는 컵에는 영..
-
[알고리즘/자바스크립트] 함수로 계산하기 (Calculating with Functions)Algorithm 2019. 4. 29. 15:03
-해당 문제는 codewars사이트의 level5 문제입니다. (1~8단계 중 8단계가 가장 쉬운 레벨)- [문제] This time we want to write calculations using functions and get the results. Let's have a look at some examples: JavaScript: seven(times(five())); // must return 35 four(plus(nine())); // must return 13 eight(minus(three())); // must return 5 six(dividedBy(two())); // must return 3 Ruby: seven(times(five)) # must return 35 four(plu..