프로그래머스 | 점프와 순간 이동 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 코드def solution(n): answer = 0 while n > 0: if n % 2 == 0: # 짝수이면 //2 n = n // 2 else: # 홀수이면 -1 n = n - 1 answer += 1 # -1 하는 횟수가 답 return answer문제를 보자마자 그리디 유형이 아닐까.. 하고 생각했다. 순간이동의 횟수를 최대로 해야 건전지 사용량이 최소가 될 수 있기 때문에 어떻게 순간이동의 횟수를 최대화하느냐가 관건이었다. 하지만 주어진 예시를 봐도 기준을 잘 모르겠어서 힌트를 찾아 인터넷 세상을 ..
Django | 장고 한국 시간 설정하기
·
Django
장고에서 기본 설정 시간은 그리니치 표준시인 UTC이다. UTC는 한국과 9시간 차이가 나기 때문에 한국 기준 오후 7시에 작성한 글이 웹 페이지에서 오전 10시에 작성된 것으로 나타날 수 있다. 실제로, 한국 시간으로 설정해주지 않으면 'Note: You are 0 hours ahed of server time'이라는 문구가 나타난다. 이 시간을 한국 시간으로 바꾸기 위해서는 settings.py를 수정하면 된다. 기본적으로 settings.py는 아래 사진과 같이 TIME_ZONE="UTC"로 지정되어 있다. 이 부분을 TIME_ZOME="Asia/Seoul"로 바꿔주면 한국 시간으로 설정할 수 있다. 또한, USE_TZ=False로 지정해 준다. USE_TZ은 models의 timezone에 변경된..
Django | 장고 앱 생성하기(startapp)
·
Django
모든 장고 프로젝트는 1개 이상의 앱으로 구성되어 있다. 장고에서 앱은 특정 기능을 수행하는 단위 모듈을 의미한다. ex) 방명록 기능, 갤러리 기능 등 앱을 만들기 위해서는 다음과 같은 명령어를 입력하면 된다. python manage.py startapp (앱 이름) single_pages라는 이름의 앱을 만드는 명령어이다. 이 명령어를 실행하면 아래 사진과 같이 디렉터리(dir)에 single_pages라는 이름의 새로운 폴더가 생긴 것을 볼 수 있다. 파이참에서도 새로운 폴더가 생겼음을 확인할 수 있으며, 새로 생긴 앱에는 admin, apps, models, test, views와 같은 파일이 생성되어 있다. 참고: Do it! 장고+부트스트랩 파이썬 웹 개발의 정석
Django | 장고 마이그레이션(migrate, makemigrations)
·
Django
장고 프로젝트를 처음 생성하면 디렉터리(dir)에는 다음과 같은 파일과 폴더가 존재할 것이다. 프로젝트가 잘 생성되었는지 확인하기 위해 서버를 실행하면 다음과 같은 오류 메시지가 나타난다. python manage.py runserver 이 오류 메시지는 아직 18개의 마이그레이션이 있다는 의미이다. 장고에서 마이그레이션(migration)이란 데이터베이스에 적용시켜야 하는 변화에 대한 기록이다. ex) 댓글 기능이 없던 블로그에 댓글 작성 기능을 추가했을 때, 데이터 베이스에 댓글을 저장하기 위한 공간인 테이블이 필요하다. 이를 데이터베이스에 반영해야 서버를 실행했을 때 웹사이트에 추가한 댓글 기능을 제대로 사용할 수 있다. 장고는 새 프로젝트를 생성할 때 데이터베이스에 기본적으로 필요한 테이블을 미리..
프로그래머스 | 피보나치 수 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음 시도한 코드 import sys sys.setrecursionlimit(10**6) def fibo(x): if x == 0: return 0 elif x == 1: return 1 else: return fibo(x-1) + fibo(x-2) def solution(n): return fibo(n) % 1234567 문제 이름을 보자마자 피보나치 함수 정도는 쉽게 구현할 수 있지!라고 생각했지만 결과는 처참했다. 런타임 에러도 아닌 시간초과를 맞닥뜨려 너무나 당황스러웠다. 어떻게 해결해야 할지 하나도 ..
프로그래머스 | 숫자의 표현 [파이썬 python]
·
Algorithm/프로그래머스
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 def solution(n): answer = 0 # 연속된 자연수로 n을 표현하는 방법의 수 for i in range(1, n+1): hap = 0 # hap이 n보다 크거나 같아질 때까지 i부터 순차적으로 더함 while hap < n: hap += i i += 1 if hap == n: # 만약 hap이 n과 같으면 연속된 자연수로 나타낼 수 있으므로 방법 +1 answer += 1 return answer 자연수 n을 연속된 자연수로 표현할 수 있는 가짓수를 구하는 문제이다. 예를 들어, n=1..