목록전체 글 (81)
MyPrograming

Q. 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을 완성해 주세요. 단, 작업을 500번을 반복해도 1이 되지 않는다면 –1을 반환해 주세요. 입력된 수, "num"은 1 이상 8000000 미만인 정수입니다. 입출력 예 #1 문제의..
1. Static File : Javascript, CSS, Images 등 웹 서비스에서 사용하기 위해서 미리 서버에 저장해놓은 정적인 파일로, 사용자가 아닌 관리자 (서비스 제공자)가 사용하는 파일을 의미한다. 1-1. STATIC_URL : 웹 페이지에서 사용할 정적 파일의 최상위 URL 경로로 각 static 파일에 대한 URL의 고정값을 설정한다. # settings.py ... STATIC_URL = '/static/' ... STATIC_URL은 정적 파일이 실제 위치한 경로를 참조한다. (STATIC_ROOT에 지정된 경로) 반드시 '/'로 끝나야 한다. → templates의 {% static '경로' %}에 대해서 해당 URL이 STATIC + '경로'로 바뀌게 되며 이는 다시 '/st..

Q. 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요. x는 1 이상, 10000 이하인 정수입니다. def solution(x): n = str(x) #입력값을 문자열로 변환 split_n = list(n) #변환시킨 문자열 n을 한 글자씩 잘라서 리스트로 저장됨 sum = 0 #각 자리수의 합을 할당할 변수 for i in range(len(split_n)): split_n[i] = int(split_n[i]) #분할된 글자들을 int형으로 변환 sum += split_n[i]..

Q. 문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요. s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다. str은 길이 1 이상인 문자열입니다. def solution(s): answer = sorted(s, reverse =True) return ''.join(answer) 문자열 s를 거꾸로 정렬한 리스트로 변환한 후, 이를 다시 문자열로 합치는 join 함수를 사용하여 해결하였다. def solution(s): return ''.join(sorted(s, reverse=True)) join함수와 sort함수를 동시에 써서 한 줄로 해결하는 방법은 생각하지 못했다.

Q. 프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다. 전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 "*"으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요. s는 길이 4 이상, 20이하인 문자열입니다. def solution(phone_number): answer = '' secret_number = phone_number[-4:] for i in range(len(phone_number)-4): answer += "*" answer += secret_number return answer 슬라이싱을 이용하여 번호의 뒷자리부터 4번째 자리까지만 따로 떼어놓고, 빈 문자열 answ..

Django가 기본적으로 제공해주는 user 모델을 통해 필드에 접근하고 수정 및 관리하는 과정이 매우 편리하다는 것을 알 수 있다. 하지만 이 외에 다른 필드들을 필요로 할때가 있다. 그럴 때에는 user 모델 자체를 재정의하여 필요한 필드들만 추가해서 사용하는 방법이 있다. 1. 프로젝트 시작 전 (migration 실행 전) 1-1. models.py from django.db import models from django.contrib.auth.models import AbstractUser class User(AbstractUser): profile_img_src = models.CharField(max_length=150, blank=True) profile_msg = models.TextFi..
1. 로그인 login.html {% csrf_token %} 로그인 loginView.py from django.contrib.auth import authenticate, login def new_LoginView(request): if request.method == "GET": return render(request, 'login.html') elif request.method == "POST": user_id= request.POST.get('user_id') user_pw= request.POST.get('user_pw') user = authenticate(request, username=user_id, password=user_pw) if user is not None: login(requ..
user_info_modify.html {% csrf_token %} 프로필 메세지 : 이메일 : 이름 : 새 비밀번호 : 수정하기 modifyView.py from django.contrib.auth.models import User @login_required def ModifyView(request): if request.method == 'GET': return render(request, 'user_info_modify.html') elif request.method == 'POST': user = request.user profile_msg = request.POST.get('profile_msg') email = request.POST.get('email') name = request.POS..