콜라츠 추측
·
Programing/Algorithm
https://www.quantamagazine.org/mathematician-terence-tao-and-the-collatz-conjecture-20191211/ 문제설명 1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다. 작업은 다음과 같습니다. 1-1. 입력된 수가 짝수라면 2로 나눕니다. 1-2. 입력된 수가 홀수라면 3을 곱하고 1을 더합니다. 2. 결과로 나온 수에 같은 작업을 1이 될 때까지 반복합니다. 예를 들어, 입력된 수가 6이라면 6→3→10→5→16→8→4→2→1 이 되어 총 8번 만에 1이 됩니다. 위 작업을 몇 번이나 반복해야하는지 반환하는 함수, solution을 완성해 주..
하샤드의 수 (Harshad Number)
·
Programing/Algorithm
문제설명 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요. 제한 사항 x는 1이상, 10000 이하인 정수입니다. 입출력 예 n result 설명 10 true 10의 모든 자릿수의 합은 1입니다. 10은 1로 나누어 떨어지므로 10은 하샤드 수입니다. 12 true 12의 모든 자릿수의 합은 3입니다. 12는 3으로 나누어 떨어지므로 12는 하샤드 수입니다. 11 false 11의 모든 자릿수의 합은 2입니다. 11은 2로 나누어 떨어지지 않으므로 11는 하샤드 수가 아닙니다. ..
JavaScript 윤년(leap year) 체크
·
Programing/javascript
윤년이란? 지구가 태양 한 바퀴 도는 데에 365일 5시간 48분 46초가 걸리며, 365일이 초과되는 시간을 보정하기 위해 만들어진게 윤년이다. 윤년은 4년 마다 한번 2월 29일을 둔다. 해당 년도가 윤년인지 아닌지 확인하는 방법은 아래와 같다 연수가 4로 나누어 떨어지는 해는 윤년 100으로 나누어 떨어지는 해는 평년 400으로 나누어 떨어지는 해는 윤년 위 방법으로 만든 코드는 아래와 같다. function leapYear(year) { return ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0); } console.log(leapYear(2019)); // false console.log(leapYear(2020)); // true co..
주민등록번호 체계 및 유효성 검사 (javascript)
·
Programing/Algorithm
ABCDEF - GHIJKLM 주민등록번호는 위와 같이 13자리로 구성되어 있다. 각 구성을 알아보자. ABCDEF : 생년월일 G: 성별을 나타낸다.생년월일의 년도가 2자리만 표기가 되기때문에 A에서 자세히 구분할수 있다. 1: 1900년대에 출생한 남자 2: 1900년대에 출생한 여자 3: 2000년대에 출생한 남자 4: 2000년대에 출생한 여자 5: 1900년대에 출생한 외국인 남자 6: 1900년대에 출생한 외국인 여자 7: 2000년대에 출생한 외국인 남자 8: 2000년대에 출생한 외국인 여자 9: 1800년대에 출생한 남자 0: 1800년대에 출생한 여자 HIJK: 출생신고를 한 지역 코드이며 아래와 같은 형식을 가지고 있다. H: 지역 I: 시.군.구 J: 동.읍.면 K: 통.반.리 HI..
퀵 정렬(Quick Sort) (javascript)
·
Programing/Algorithm
퀵 정렬은 찰스 앤터니 리처드 호어가 개발한 정렬 알고리즘으로 다른 원소와의 비교만으로 정렬을 수행하는 비교 정렬이다. 난수열에 대해 퀵 정렬을 실행한 그림. 수평선은 피벗 값을 가리킨다. 퀵 정렬은 분할 정복(divide and conquer) 방법을 통해 리스트를 정렬한다.리스트 가운데서 하나의 원소를 고른다. 이렇게 고른 원소를 피벗이라 한다.피벗 앞(left)에는 피벗보다 값이 작은 모든 원소들이 오고, 피벗 뒤(right)에는 피벗보다 값이 큰 모든 원소들이 오도록 피벗을 기준으로 리스트를 둘로 나눈다. 이렇게 리스트를 둘로 나누는 것을 분할이라 한다. 분할을 마친 뒤에 피벗은 더 이상 움직이지 않는다.분할된 두 개의 작은 리스트에 대해 재귀(Recursion)적으로 이 과정을 반복한다. 재귀는..
재귀 함수를 이용한 거듭제곱 (a의 n승) (javascript)
·
Programing/Algorithm
해당 코드는 범용성을 위해 자바스크립트를 이용하여 만들었으며 for, while을 사용하지 않고 재귀적으로 동작하게 구현했다. function myFactorial(num, exp) { return exp===0?true:(num * myFactorial(num, exp-1)); } console.log(myFactorial(2, 4)); // 16 console.log(myFactorial(3, 3)); // 27 myFactorial(3, 3) 으로 설명하면num = 3이고 exp = 3 이기때문에 exp가 0이 될때까지 재귀 함수를 반복한다. 재귀함수를 사용함으로 num * num * num * true 같은 형태를 리턴하게 된다.true는 1과 같기 때문에 3 * 3 * 3 * 1 과 같다.
인스타그램 자바스크립트 API
·
Programing/API
1. 인스타그램 개발자 사이트 (https://www.instagram.com/developer/)에 접속하여 로그인한다. 2. register your application을 누른 뒤 register a new client 클릭 3. client 등록 양식을 작성한다. 어플리케이션 이름과 설명, OAuth redirect_uri은 각 프로젝트에 맞게 입력한다. 4. 등록 완료 후 manage clients에서 자신의 클라이언트 정보를 확인한다. 여기서 client id, client secret을 메모해둔다. 5. (4)에서 메모한 client id를 아래 주소 YOUR_CLIENT_ID 대신 입력한다.OAuth redirect_uri 를 HTTP://WWW.YOUR_DOMAIN.COM/INDEX.PH..
jQuery기반 input 숫자만 입력받게. (+콤마처리)
·
카테고리 없음
jquery function으로 만들어본 input 숫자만 입력받게 하는 부분입니다. 숫자와 더불어 3자리 단위로 콤마까지 자동으로 찍히게 합니다. JavaScript 코드입니다. (function ($) { // 숫자 제외하고 모든 문자 삭제. $.fn.removeText = function(_v){ //console.log("removeText: 숫자 제거 합니다."); if (typeof(_v)==="undefined") { $(this).each(function(){ this.value = this.value.replace(/[^0-9]/g,''); }); } else { return _v.replace(/[^0-9]/g,''); } }; // php의 number_format과 같은 효과. $...
JSON] String to Object (String to json)
·
Programing/javascript
json 형태로되어 있는 문자열(string)을 json object로 바꾸는 방법이다.아래의 예시처럼 사용 할 수 있다. var str = '{"user":"jone", "mail":"jone@localhost.com"}'; var obj = eval("("+ str +")"); alert("user name:"+ obj.user); alert("user mail:"+ obj.mail); // 만약 json 형태의 문자열이 아래와같다면 eval시 괄호는 생략 할 수 있다. var str = '[{"user":"jone", "mail":"jone@localhost.com"}]'; var obj = eval(str); alert("user name:"+ obj.user); alert("user mail:"..
HTML5 Video - DOM 속성 및 이벤트.
·
Programing/HTML
모바일에서 동영상 재생 서비스 부분을 만들고 있는데 쉽지가 않네요 ^^;; 여러가지 걸리는 문제점도 있고, 플랫폼에 따라 지원여부도 틀려지고 ㅠ 아래는 프로젝트 진행도중 자료를 찾다 유용하게 사용한 부분들을 정리하였습니다. 더 많은 정보는 http://dev.opera.com/articles/view/introduction-html5-video/ 여기를 통해 확인 할 수 있습니다. (*) 으로 표시 된 속성은 파폭에서 지원 하지 않습니다. Display attributes src (string): 소스파일 (경로 포함) poster (URL): 동영상에 표시될 이미지. controls (boolean): 브라우저에 의한 제어? videoWidth, videoHeight (integer): 동영상의 가로,..