본문 바로가기

전체 글

(8)
[PHP] 날짜 함수 정리 / date()와 strtotime() / 날짜 함수를 이용한 문제 풀이 1. date() date(string $format, int $timestamp) //실행결과 2021-11-10 20211110 2. strtotime() strtotime(string $datetime, int $baseTimestamp) //실행결과 2003-12-15 * 문제 1. 본인의 생년월일을 기준으로 100년까지 요일별로 통계 출력 2. input으로 생년월일을 입력받아 100년까지 요일별로 통계 출력 먼저, input값을 받을 date.html의 코드이다. date.html Year Month Day form action을 통해 get방식으로 php 파일에 데이터를 넘겨줄 예정이다. year, month, day를 입력받는 input은 text 타입으로 각각 4, 2, 2자리씩 입력이 ..
[Clean Code] #1_깨끗한 코드 ✨ 제 1장, 깨끗한 코드 코드가 존재하리라 코드가 사라질 가망은 전혀 없다! 코드는 요구사항을 상세히 표현하는 수단이기 때문 기계가 이해, 실행할 정도로 엄밀하고 정확하며 상세하고 정형화되어야하기 때문 나쁜 코드 ; 고행 'wading' 르블랑의 법칙, 나중은 결코 오지 않는다! 쓰레기 코드가 돌아간다는 사실에 안도하며 나중에 손 보겠다는 생각은 절대 금지 나쁜 코드로 치르는 대가 나쁜 코드는 팀 생산성 저하의 원인 깨끗한 코드를 만드는 노력은 비용을 절감하고, 전문가로 살아남는 법 나쁜 코드는 업무 속도를 늦추는 원인 빨리 가는 방법은, 언제나 코드를 최대한 깨끗하게 유지하는 습관 깨끗한 코드 코드 감각 나쁜 코드와 좋은 코드를 구분 절제와 규율을 적용해 나쁜 코드 -> 좋은 코드 전략 파악 보기에 ..
[알고리즘] #4_2021 KATABI 알고리즘스터디_정수론 및 조합론 정수론이란, 정수의 성질을 연구대상으로 하는 수학의 한 분야 조합론이란, 유한하거나 가산적인 구조들에 대해 어떤 주어진 성질을 만족시키는 것들의 가짓수나 어떤 주어진 성질을 극대화하는 것을 연구하는 수학의 한 분야 정수론 1. 소수(Prime number) 양의 약수가 1과 자기 자신으로 두개 뿐인 자연수 1) 소수 구현방법 (1) 1, 2 제외 (소수이기 때문) (2) 3부터 n까지 순회하며 약수가 있는 지 확인 2. 소인수분해 (Prime factorization) 한 합성수를 소수들의 곱으로 표현하는 것을 찾는 방법 [합성수] 소수의 반댓말, 세 개 이상의 양의 약수를 가지고 있는 수 1) 소인수분해 구현방법 (1) 2부터 시작해서 n의 약수 탐색 (2) 약수를 찾을 때마다 n/n의 약수 3. 에라..
[알고리즘] #3_2021 KATABI 알고리즘스터디_정렬 정렬이란, n개의 숫자가 입력으로 주어졌을 때, 사용자가 지정한 기준에 맞게 정렬하여 출력하는 방식의 알고리즘이다. 정렬 알고리즘의 종류 1. 비교 정렬 : 원소들을 정렬할 때 원소들의 순서에만 의존하는 알고리즘 EX) 버블 정렬 → 원소가 숫자, 문자열, 복잡한 객체임도 상관없이 순서만 있다면 적용 가능 하지만, 시간복잡도의 제약이 존재 2. 제자리 정렬 : 원소들의 개수에 비해서 충분히 무시할 만한 저장 공간만을 더 사용하는 알고리즘 EX) 삽입 정렬 → 추가 공간이 옮겨지는 데이터가 저장되는 공간 + 루프 변수 정도만 사용할 뿐임 3. 온라인 정렬 : 모든 원소들이 처음부터 주어지지 않고 차례대로 들어오는 경우도 처리가능한 알고리즘 EX) 합병 정렬 → 이미 정렬된 부분 리스트를 관리, 원소가 들어..
[알고리즘] #2_2021 KATABI 알고리즘스터디_브루트 포스 브루트 포스란, 완전탐색 알고리즘 기법 중 하나로 가능한 모든 경우의 수를 모두 탐색하면서 요구 조건에 충족되는 결과만 가져오는 방식의 알고리즘이다. 모든 경우를 다 구해서 그 중 만족하는 답을 찾아내는 '문제를 푸는 과정' 자체가 완전탐색이다. 이 방식은 100%로 옳은 답을 구해낼 수 있는 강력한 방법이다. 브루트 포스의 개념 EX) 1부터 100까지의 합을 구하는 문제 1부터 100까지 차례차례 하나씩 계산해나가는 것 브루트 포스의 필요성 1. 아주 단순한 알고리즘 2. 항상 최적의 해를 구할 수 있음 브루트 포스의 문제점 1. 좋은 성능 X 2. 많은 자원을 필요로 하고, 복잡도에 민감 암호학적인 관점에서의 브루트 포스 brute (난폭한, 무식한) + force (힘) = brute force ..
[알고리즘] #1_2021 KATABI 알고리즘스터디_재귀 재귀란, 하나의 함수에서 자신을 다시 호출해 작업을 수행하는 것이다. 재귀함수를 호출하면 함수의 매개변수, 지역변수, 리턴값 등이 스택 메모리에 저장된다. 함수를 반복호출하므로 호출하는 횟수가 많아질수록 스택 메모리는 점점 커지게 되고, 결국에는 스택오버플로우가 발생할 수 있다. 재귀함수의 개념 EX) 1부터 n까지의 합을 구하는 문제 1. 재귀호출을 이용한 문제해결 알고리즘 (1) 1부터 4까지의 합은 1부터 3까지의 합에 4를 더하면 됩니다. (2) 1부터 3까지의 합은 1부터 2까지의 합에 3을 더하면 됩니다. (3) 1부터 2까지의 합은 1부터 1까지의 합에 2를 더하면 됩니다. (4) 1부터 1까지의 합은 그냥 1입니다. 2. 알고리즘을 의사코드로 변환 - 의사코드란, 프로그래밍 언어가 아닌 일..
[알고리즘] #0_2021 KATABI 알고리즘스터디_계획 친구와 함께 'KATABI' 라는 이름의 스터디를 시작했다. 가장 처음으로 시작하는 스터디는 알고리즘이다. 알고리즘 스터디가 어느정도 익숙해지면, 클론코딩 방식을 이용한 WSM스터디를 진행해볼까한다. 알고리즘 스터디는 매주 한개의 알고리즘의 개념을 정리하고, 문제풀이를 하는 방식으로 진행한다. 매주 목요일에는 ZOOM을 이용한 온라인 회의시간을 가져 각자 정리한 개념과 풀이한 문제를 브리핑하는 시간을 가질 예정이다.
[Django] 장고 프로젝트 시작하기 / 장고 개발환경 구축 / 장고 서버 실행 나는 Pycharm을 이용해 장고 프로젝트를 진행하고 있다. #1 개발환경 구축 장고 개발환경 구축을 시작해보겠다. 장고 패키지는 Settings에서 설치하는 방법, 터미널에서 설치하는 방법이 있다. 나는 Settings에서 설치하는 방법을 이용하였다. File - Settings - Project: Metering(프로젝트 이름) - Python Interpreter 에 들어간다. 오른쪽에 위치한 + 버튼을 눌러 장고를 설치할 수 있다. + 버튼을 눌러 나온 검색창에 'Django'를 검색하고 Install package 한다. #2 장고 프로젝트 생성 터미널을 열어 다음과 같이 입력하면, 현재 디렉토리 안에 새 디렉토리를 생성할 수 있다. django-admin startproject metering..