콘텐츠로 건너뛰기
Home » 스터디 » 페이지 11

스터디

오일러 프로젝트 53

1, 2, 3, 4, 5 다섯 숫자 중에서 세 개를 고르는 것에는 다음과 같은 10가지 경우가 있습니다.

>> 123, 124, 125, 134, 135, 145, 234, 235, 345

조합론이라는 분야에서는 이것을 5C3 = 10 이라고 표현하며, 일반적인 식은 아래와 같습니다.

\binom{n}{r} =\frac{n!}{r!(n-r)!}

이 값은 n=23에 이르러 23C10 = 1144066으로 처음으로 백만을 넘기게 됩니다. 그렇다면 1 ≦ n ≦ 100 일 때 nCr의 값이 1백만을 넘는 경우는 모두 몇 번입니까?

http://euler.synap.co.kr/prob_detail.php?id=53
더 보기 »오일러 프로젝트 53

Swift – 큰 수의 덧셈과 곱셈 구현하기

프로젝트 오일러의 몇몇 문제는 큰 수의 덧셈이나 곱셈의 계산이 필요한 경우가 있다. 파이썬이나 하스켈과 같이 정수타입이 기본적으로 바이트 크기의 제약이 없는 언어에서는 이는 별다른 문제가 되지 않지만, 그외의 언어에서는 좀 까다로운 문제가 된다.  예를 들어 50자리 숫자 100개의 합을 계산하는 문제 같은 경우에 파이썬에서는 50자 짜리 숫자 문자열을 int 타입으로 캐스팅해서 합해버리면 그만이지만, Swift와 같은 언어로 이렇게 풀 수는 없다. 해당 문제의 풀이에서는 손으로 덧셈을 해 나가는 방식을 코드로 구현해서 풀었는데, 이후로도 큰 수를 계산해야 하는 문제가 자주 나온다. 수가… 더 보기 »Swift – 큰 수의 덧셈과 곱셈 구현하기

프로젝트 오일러 51

두자리 숫자 ▯3 의 첫번째 자리를 여러가지로 바꿨을 때 가능한 아홉가지의 결과 중에서 13, 23, 43, 53, 73, 83의 여섯개는 소수입니다. 56▯▯3의 세 번째와 4번째 자리를 동일한 숫자로 바꿔서 만들어지는 10개의 다섯자리 숫자 중에는 아래에서 보듯이 7개가 소수가 되며, 이것은 이런 식으로 7개의 소수가 만들어지는 첫번째 경우입니다. 이 소수 집단의 첫번째 수인 56003은 이런 성질을 갖는 가장 작은 소수입니다.

56003, 56113, 56333, 56443, 56663, 56773, 56993

위의 예처럼 원래의 일부를 동일한 숫자로 치환했을 때 8개의 소수 집단이 만들어지는 경우를 찾고, 그 집단에 속한 가장 작은 소수를 구하세요. 치환하는 자리는 인접하지 않아도 되고, 가장 앞부분을 치환하는 경우에는 거기에 0은 올 수 없습니다.

http://euler.synap.co.kr/prob_detail.php?id=50
더 보기 »프로젝트 오일러 51

(Python) 데이터를 입력받는 방법을 유연하게 생각해보기

컴퓨터 프로그램은 사실상 하나의 함수와 같다. (그래서 많은 프로그램은 실행자체가 main() 과 같은 함수의 호출이기도 하다.) 프로그램은 입력장치로부터 데이터를 읽어들이고, 이 소스데이터를 가공하여 결과를 만들고, 이를 출력한다. 마치 어떤 프로그램의 실행과정은 일종의 쥬스메이커와 같다고 볼 수 있다. 과일(입력될 데이터)을 투입구에 밀어넣고 동작 버튼을 누르면 기계속으로 들어간 과일이 잘리고 눌려서 과즙이 되고, 그것이 노즐을 통해서 퐁퐁 흘러나와 컵에 담기는데, 맛있는 쥬스 대신에 데이터가 흘러나온다는 점만 다를 뿐 둘의 흐름은 똑같다.

더 보기 »(Python) 데이터를 입력받는 방법을 유연하게 생각해보기

SASS/SCSS 내장 함수 정리

지난 글에서  SCSS의 기본적인 문법과 확장, 믹스인, 함수를 작성하는 방법에 대해 정리해 보았다. 이번에는 SASS가 제공하는 기본 함수들을 정리했다. SASS의 기본 함수들은 크게 다음과 같이 나뉜다.

  1. 색상 관련 함수 : 색상 정보 RGB, HSL 값으로 생성하거나, 기존에 만들어져 있는 색상값을 변경할 수 있다. 특히 색상은 유지한채 밝기나 선명도를 변경하는 함수는 동일 색조 내에서 색을 변경하는데 유용하게 쓰일 수 있다.
  2. 숫자 및 문자열 관련 함수
  3. 리스트 및 맵의 데이터 타입을 다루기 위한 함수

더 보기 »SASS/SCSS 내장 함수 정리

SCSS/SASS 문법 정리

SCSS는 기존 CSS 문법에 SASS문법을 섞은 것이며, SASS 컴파일러로 그대로 컴파일 될 수 있다. 이 글에서는  SCSS 문법을 기준으로 SASS의 각 기능을 사용하는 방법에 대해 설명하도록 하겠다. 기본문법 – 셀렉터 지정 및 속성 작성 SCSS의 기본문법은 기본적으로 CSS 기본 문법을 그대로 적용하고, 여기에 SASS 식의 치환가능한 요소들을 추가할 수 있다. 기본룰은 다음과 같다. 기본틀은 CSS 문법과 동일하다. 셀렉터를 쓰고 { .. } 블럭안에 속성:속성값; 의 형태로 속성들을 정의할 수 있다. nested block을 적용할 수 있다.  //을 이용해서 라인단위로 주석처리를 할… 더 보기 »SCSS/SASS 문법 정리

정규표현식의 개념과 기초 문법

작성한지 10년이 지났는데도 notepad++ 관련한 키워드로 꾸준히 유입이 발생하고 있고,  그게 정규표현식 관련한 글인데 별로 내용이 좋은 글이 아니다. (몇 가지 기초적인 문법만 요리책 식으로 나열해 놓은 거라…) 그래서 정규표현식의 개념과 기초 문법 그리고 몇 가지 이 블로그에서 다루는 언어들에서 정규표현식을 어떻게 쓰는지, 어떤 것들을 할 수 있는지 등에 대해서 알아볼 계획이다.

오늘은 그 첫 번째 순서로, 정규표현식의 개념과 가장 기초가 되는 패턴 문법에 대해서 살펴보려고 한다.

더 보기 »정규표현식의 개념과 기초 문법

cron : 리눅스에서 스케줄을 등록하는 방법

 cron 설정방법

cron 설정 방법을 알아보던 중에 아래의 훌륭한 글을 발견하고 간단하게 번역해보았다.

http://www.unixgeeks.org/security/newbie/unix/cron-1.html

cron 이란?

cron은 유닉스 사용자로 하여금 특정한 명령이나 스크립트를 지정한 시간/날짜에 자동으로 실행하게 해주는 프로그램의 이름이다. 이는 주기적으로 시스템 백업 스크립트를 실행하는 등 시스템 관리자에 의해 많이 사용되며, 그 외에도 특정한 작업을 스케줄링하기 위해 사용될 수 있다. 최근에는 자동으로 인터넷에 접속해서 이메일을 다운로드 받는 등의 용도로 쓰이기도 한다.

무슨 주기적으로 이메일을 다운로드 받냐고 하는 의문이 들 수 있는데, 이 글의 원문이 쓰여진 시점이 1999년이다.

시작하는 법

cron은 일종의 데몬이다. 즉 한 번 실행되면 시스템에 상주하며 필요할 때마다 동작한다. 비슷한 예로 웹서버도 일종의 데몬으로 웹페이지에 대한 요청이 들어올 때만 작동한다. 크론 데몬은 crond라는 이름을 갖는데, 설정 파일 혹은 crontab에 기록된 날짜나 시간이 되면 지정된 작업을 수행한다. 이 작업에는 특정 주기마다 실행될 스크립트를 모은 디렉토리내의 작업들 혹은 개별 명령이 적용될 수 있다.

더 보기 »cron : 리눅스에서 스케줄을 등록하는 방법