본문 바로가기

[알고리즘] 하노이 탑 이동순서(백준 11729/파이썬) 필요한 개념:재귀함수 재귀함수란?재귀호출이라고도 불리며 함수 안에서 자신을 다시 호출하여 작업을 수행하는 방식의 함수입니다. 반복문을 사용하는 코드는 재귀 함수를 통해 구현하는 것이 가능합니다.재귀 함수를 작성할때는 함수 내에서 다시 자신을 호출 한 후 그 함수가 끝날 때까지 함수 이후의명령문이 수행되지 않기 때문에 무한루프를 방지하기 위하여 원하는 값을 얻으면 종료하거나 들어가는 인자값이계속 변하는등 '종료조건'을 꼭 포함하여야 합니다. 재귀 함수는 메모리를 많이 차지 하기 때문에 재귀 함수를 많이 사용하면 스택 메모리가 커지고 호출하는 횟수가 많아지므로 스택오버플로우가 발생할 수 있습니다. [문제] [문제해결방법]하노이의 탑은 시작 기둥에서 도착 기둥으로 모든 원판을 옮기는 것이 목표입니다.조건은 작..
[알고리즘] 피보나치 함수(백준 1003/파이썬) 필요한 개념: 동적계획법 동적계획법이란?영어로는 Dynamic Programming / DP라고 하며 특정 범위까지의 값을 구하기 위해서 각 부분 문제의 구해놓은 답을 저장하고 나중에 중복 되는 수가 나왔을때 전에 구해놓은 답을 가지고와 사용하는 효율적으로 값을 구하는 알고리즘 설계 기법입니다. 메모이제이션(memoization): 하향식 접근법컴퓨터 프로그램이 동일한 계산을 반복해야 할때 함수 값을 계산한뒤 계산된 값을 메모리에 저장하여 프로그램 실행 속도를 빠르게 하는 기술입니다. [문제] [문제해결방법]피보나치 수는 앞에 두 수를 더하여 그 다음 수를 만들어내는 방식으로ex) 0+1=1 , 1+1=2 , 1+2=3, 2+3=5, 3+5=8, 문제를 풀어야 하기 때문에 반복계산을 막기 위해 이전에 계..
[알고리즘]파도반 수열(백준 9461 /파이썬) 필요한 개념:동적계획법[문제] [문제 해결방법]이 문제는 삼각형의 변의 길이를 가지고 규칙을 찾아서 문제를 해결하는 방법입니다. 숫자가 1, 1, 1, 2, 2, 3, 4, 5, 7, 9 이런 식으로 커지는 것을 알 수 있습니다.여기서 찾은 규칙은 n번째의 숫자를 구하려면 n-2와 n-3을 더해야 한다는 것입니다. 수학적인 정의로 나타내면P(n)=p(n-3)+P(n-2) 예를 들면 6번째 삼각형의 변의 길이를 구하려면4번째와 3번째 삼각형의 변의 길이를 더하면6번째 정삼각현의 길이가 나온다는 것을 할 수 있습니다. P(6)=p(3)+P(4) 3=1+2 그리고 숫자를 계산하면서 중복되는 값들이 나올 수 있기 때문에 중복된 값들을 바로 사용할 수 있도록 딕셔너리를 만들어동적 계획법을 사용하여 계산하는 시간을..
[알고리즘] 곱셈 (백준 2588) 날짜:21/03/09 언어:python3 개념:사칙연산 [문제] [문제해결방법] 1. 공백으로 입력값 받기 2. 정수로 변환하기 3. b를 1의자리, 10의자리, 100의 자리 숫자를 나눠 각각 a와 곱한다 4. 마지막은 a*b를 한다 [코드 리뷰] import sys a=int(sys.stdin.readline()) b=int(sys.stdin.readline()) c = (b%10)*a d = (b//10)%10*a e = (b//10)//10*a f = a*b print(c) print(d) print(e) print(f) #print(a*(b%10),a*((b//10)%10),a*(b//100),a*b, sep='\n') #아니면 사칙연산을 풀때 처럼 print()한줄에 넣어 sep='\n'으로 ..
[알고리즘] 사칙연산 (백준 10869) 날짜: 21/03/09언어: python3개념: 사칙연산 사용[문제] [문제해결방법]1. 주어진 두 자연수를 받는다.2. 받은 값을 정수로 바꿔주기3. +, -, *, //, % 출력하기 출력 = print()숫자로 바꾸기 =int()문자열로 바꾸기 = str() [코드리뷰]import sys A, B = sys.stdin.readline().split() #입력값을 받아오기 A=int(A) B=int(B) #정수로 변환하여 줍니다. print(A+B, A-B, A*B, A//B, A%B, sep='\n') 한 줄씩 값을 출력하라고 하였으니 sep='\n'을 사용하여 줄바꿈을 해줍니다.[결과]
[W.I.L] 웹 개발 미니프로젝트(항해99 chapter01) ·기간 : 21/03/01~21/03/05·프로젝트명 : 항해GPS·기획배경 :열정적인 팀원들과 만나 지금 하고 있는 항해99의 함께하고 있는항해99 크루들이 도움이 될 만한 서비스를 만들고 싶어서 이 프로젝트를 기획했습니다. ·필수 포함 기능 : JWT를 이용한 로그인 및 회원가입, jinja사용하기JWT란?유저 로그인을 할때 서버에서 받아오는 토큰값으로 본인 확인을 하는 방식이어서 저장소가 따로 필요 없습니다. 세션/쿠키는 데이터베이스에 저장을 하여 유저가 로그인을 했을때 가져오는 방식으로 사용 됩니다. 그래서 유저가 많아지게 되면 db에 과부하가 올 수 있지만 JWT는 저장 공간이 따로 필요하지 않아 훨씬 간편합니다. jinja2란?파이썬의 프레임 워크로써 데이터랑 템플릿을 연결시켜주는 템플릿 엔진..
[회고록 201011] 파이썬 7일동안 코딩 공부하기-스파르타 2020/10/11 14:00 코딩 '회고(Retrospective)' ​ 1. 수강 목적: 독학으로 코딩을 시작 했지만 커리큘럼이나 지도자가 없으니 혼자서 어떤 것부터 해나가야 할지 막막했었다. 어느정도 공부할 틀을 찾고 공부를 시작하니까 일과 병행하는 것이 정신적으로 체력적으로 부족하게 느껴지는 부분들이 많이 생겨서 '그만 할까' 하는 생각이들었는데 스파르타에서 추석 특집(?)으로 무료로 코딩공부를 할 수 있다고 해서 신청했었다. 마음을 다잡고 일단 정해진 기한도 있고, 다른 사람들과 같이 하면 동기부여도 되고 에러가 나도 물어볼 곳이 있다는 생각에 한번 더 마음을 잡고 해보려고 신청했었다. ​ 2. 배운 점/잘한 점: 배운점: 빅데이터를 배울 때 원하는 순위만 딱 나오는 것이 아니라 필요없는 정보들..
[항해99 - chapter01] 미니 웹 프로젝트(Starting Assignment) 1. 프로젝트 제목 : 항해GPS 간단한 설명 : 항해99 선언들의 안전한 항해를 위한 현 위치 알리미 타겟: 항해99 선원들 보여지는 페이지수:로그인페이지, 항해GPS, 항해일지, 보물창고, S.O.S 2.와이어프레임 3. 개발해야하는 기능들 4. public github repo 주소 https://github.com/DaHee200/hanghae99-project1DaHee200/hanghae99-project1Contribute to DaHee200/hanghae99-project1 development by creating an account on GitHub.github.com