본문 바로가기

개발이야기61

피보나치 함수 구현 방법 피보나치 함수는 피보나치 수는 F(0) = 0, F(1) = 1일 때, 1 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 수다. 재귀함수로 구현하는 예시가 많다. 내가 구현한 재귀함수의 피보나치는 def fibo(n): if n==0: return 0 elif n==1: return 1 return fibo(n-1)+fibo(n-2) print(fibo(6)) #출력:8 이렇게 되는데 가끔 효율성이 떨어져서 알고리즘 문제를 풀면 실패할 때가 있다. 따라서 재귀함수 대신 def fibo(a): x,y=0,1 for i in range(a): x,y=y,x+y return x print(fibo(6)) #출력값 : 8 을 썼더니 같은 코드여도 성공했다,,! 아니면 내가 재귀함수를 .. 2020. 5. 30.
Express, Routing ※이 포스팅은 sopt 26기 server part seminar 자료 바탕으로 작성되었으며, 복습용입니다. 1-1. NodeJS Express와 Routing을 설명하기 전, 알아둬야 할 부분이 있다. 바로 NodeJs인데, 이전까지 나는 프레임워크라고 잘못 알고 있었다...!_!,,,, NodeJS란 -> JS 기반 서버 플랫폼 -> 이벤트 기반, 싱글 스레드 기반 -> non-blocking I/O -> 비동기 방식 -> 프로그램 언어 (X), 프레임워크 (X) -----> JS를 실행시키는 런타임 환경이다. 1-2. Express 그리고 Express가 바로 NodeJS기반의 웹 앱 프레임워크다. 서버를 구축하기 쉽게 틀을 제공한다. HTTP 요청에 대해 라우팅 및 미들웨어 기능을 제공한다. 1-.. 2020. 5. 23.
ascii 변환 python에서 유용하게 쓰이는 ascii 변환 문법에 대해 소개하려고 한다! (다른 언어에서도 쓰여욤!_!) 단 두 개만 알면 된다. ord()와 chr() 다. chr는 character로 변환한다는 뜻으로 알고 있었지만 ord는 무슨 뜻인지 궁금했다. 찾아보니 'ordinal'의 약어로 '순서'를 뜻한다. ord() -> 아스키코드 값을 반환하는 함수 chr() -> 문자열의 가장 왼쪽 문자의 아스키 코드 값을 반환하는 함수 예시로 바로 살펴보면 print(ord('a')) #97 print(chr(97)) #a 이렇게 된다. 아스키코드를 이용한 문제가 출제될 때마다 잘 사용해야겠다..! 2020. 5. 17.
Javascript ※이 포스팅은 sopt 26기 server part seminar 자료 바탕으로 작성되었으며, 복습용입니다. 1-1. Javascript란? Javascript는 객체 기반 스크립트 언어 (=인터프리터 언어) 다. 여기서 스크립트 언어는 -코드를 한 줄씩 번역하고 실행한다. -실행 속도가 컴파일 언어에 비해 느리다. -타입을 명시하지 않는다. -*프로토타입 기반의 객체지향 언어다. *프로토타입 기반 프로그래밍은 객체지향 프로그래밍의 한 형태의 갈래로 클래스가 없고, 클래스 기반 언어에서 상속을 사용하는 것과는 다르게, 객체를 원형(프로토타입)으로 하여 복제의 과정을 통하여 객체의 동작 방식을 다시 사용할 수 있다. 그럼 스크립트 언어에 반대되는 개념은 컴파일 언어라고 할 수 있다. 컴파일 언어의 대표적인.. 2020. 5. 10.
client와 server ※이 포스팅은 sopt 26기 server part seminar 자료 바탕으로 작성되었으며, 복습용입니다. server에 대해 공부하려면 먼저 server가 무엇인지 알아야한다. 프로젝트를 진행하면 한번 이상은 꼭 들어봤을 client와 server에 대해 알아볼 것이다. client : 요청을 보내는 주체 -> 서비스 요청자, 서비스를 사용하는 사용자(브라우저, 데스크톱프로그램, 모바일 앱), 다른 서버 server : 서비스 자원의 제공자 -> 네트워크를 통해 클라이언트에게 서비스 및 정보를 제공, 다른 서버에게 요청을 보내기도 함 대표적인 예로 월드와이드웹이 있다. 웹사이트에서 웹서버는 서버 역할을 하며, 웹브라우저는 클라이언트 프로그램 역할을 한다. 근래에는 클라이언트인 동시에 서버일 수 있다. 2020. 5. 10.
range 사용하기 거의 모든 파이썬 알고리즘 문제풀이 사용되는 range에 대해 알아볼 것이다. +여기서 print(i, end=' ')를 해준것은 print(i)로 하면 한 라인에 하나의 i씩 출력되기 때문에 보기 깔끔하게 하려고 한 것이다..! for i in range(3): print(i, end=' ') #0 1 2 for i in range(0,3): print(i, end=' ') #0 1 2 for i in range(0,3,1): print(i, end=' ') #0 1 2 위의 세 range의 범위는 모두 같다. range(i)이면 범위는 0부터 i-1까지, range(0,i)이면 범위는 0부터 i-1까지, range(0,i,1)이면 범위는 0부터 i-1까지 1씩 커진다. 즉, i만 지정해준다면 defa.. 2020. 5. 6.
sorted()와 sort()의 차이 python에서 정렬 문제가 자주 나오고 다른 종류의 문제에서도 정렬이 자주 쓰인다. 여기서 sorted()와 sort()가 쓰이는데 이 두 방법의 차이점은 무엇일까? 먼저, 예시로 설명하자면 a=[3,6,1,4,7] b=sorted(a) print(b) #[1, 3, 4, 6, 7] a=[3,6,1,4,7] a.sort() print(a) #[1, 3, 4, 6, 7] 이렇게 된다. 결과는 당연히 같다. sorted()는 원래의 list는 원래대로 놔두고, 한번 더 list를 가져와 정렬한다. sort()는 원래의 list내에서 정렬이 되는 것이라고 생각하면 된다..! 따라서, sorted()는 메모리 사용량을 두배로 늘어난다고 보면 되고, 속도는 sort()가 빠르다. 때때로 원래의 list를 사용해.. 2020. 5. 3.