전체 글(217)
-
버블 정렬을 만들어보자
def bubblesort(arr): for i in range(1, len(arr)): for j in range(len(arr) - i): if arr[j] > arr[j+1]: arr[j],arr[j+1] = arr[j+1],arr[j] return arr arr = [3,2,1] print(bubblesort(arr)) i j arr[j] arr[j+1] if문 arr 1 0 3 2 성립 [2,3,1] 1 1 3 1 성립 [2,1,3] 2 0 2 1 성립 [1,2,3] 버블정렬은 배열 요소를 하나씩 쌓아가는게 특징이다. 뒤에서부터 혹은 앞에서부터 쌓인 배열 요소는 정렬이 이루어졌으므로 다음 반복부터 비교에서 제외한다. for문에서 j값이 0부터 len(arr) - i 까지 반복하는 이유이다.
2020.06.25 -
파이썬 정규식 표현
정규식은 주로 유효성 검사를 위해 사용하고 파이썬에서 정규식 사용을 위해 import re 해야한다. # - 하이픈은 from - to 를 나타낸다. # [a-zA-Z]는 알파벳 모두 # [0-9]는 숫자 모두 p = re.compile('[0-9]+') string = ['ct','ㅅ11','123'] for s in string: m = p.search(s) if m: print(f'{s}은 유효성 검사 통과') else: print(f'{s} 유효하지 않은 문자') output>> ct 유효하지 않은 문자 ㅅ11은 유효성 검사 통과 123은 유효성 검사 통과 # 꺽쇠 (^) 문자는 현재 정규식의 부적을 의미 # [^0-9]는 숫자를 제외한 모든 문자를 허용하는 정규식이다. p = re.compile..
2020.06.24 -
REST API
API란? 쉽게 말해서 서버와 클라이언트가 서로 정보(data)를 교환할 수 있도록 하는 것 REST API란? 예를 들자면 구글 맵을 이용하고 싶거나 기상청의 날씨 데이터를 가져올 때 API를 사용하는 것(Open API) 그리고 웹 페이지를 이동 할 때 필요한 정보를 전달하는 것 기본적으로 HTTP동작 방식(서버와 클라이언트 사이의 요청, 응답)을 사용 REST API의 구성요소는 크게 3가지가 있다. Resource(자원) - URI Verb(행위) - HTTP Method Repressentations(표현) - Json, xml 등 위 구성요소의 자원에 URL이 아닌 URI가 쓰여있다. 무엇이 다른 걸까? URL은 자원의 위치 즉, 파일(HTML 문서)의 위치를 의미 URI는 인터넷 상의 자원을..
2020.05.22 -
롤 전적 검색 사이트 만들기(4)
배포 ngrok 완성된 웹 페이지를 배포하는 방법은 여러 가지가 있습니다. 가장 빠른 배포 방법은 ngrok를 사용하는 방법입니다. ngrok는 Flask에서 라이브러리로 지원하며 테스트 환경에서. py 코드를 실행시키면 배포가 완료됩니다. ngrok로 실행시 터미널에 띄워지는 주소로 접속할 수 있습니다. 하지만 24시간 서버를 열어놓기 위해서는 터미널을 계속 열어두어야 하고 주소가 매번 바뀐다는 단점이 있습니다. Heroku heroku는 배포를 하기 위해 몇가지 조건이 필요합니다. 설치된 라이브러리가 들어있는 requirements.txt 파일이 필요하고 Procfile에서 서버의 구동 방식과 시작할 파이썬 파일을 지정해줘야 합니다. 처음 배포할 때 자잘한 오류로 인해 배포하는데 오래 걸렸지만 익숙해..
2020.05.06 -
Flask를 AWS에 Deploy하기
1. Deploy 하기 전 준비 github에 작업한 프로젝트 파일 push AWS회원가입(AWS는 12개월 프리티어를 지원합니다.) 아마존 클라우드 서버 호스팅 | Amazon Web Services AWS Nitro 시스템 AWS Nitro 시스템은 차세대 EC2 인스턴스를 위한 기본 플랫폼으로, 이를 통해 AWS는 더 빠른 속도로 혁신하고, AWS 고객이 부담하는 비용을 추가로 줄이고, 향상된 보안 및 새로운 인스턴스 유형과 같은 추가적인 혜택을 제공할 수 있습니다. aws.amazon.com 2. AWS 인스턴스 생성 EC2 서비스를 이용해서 서버를 구동시킬 예정이기 때문에 서비스 찾기에 EC2를 입력합니다. 인스턴스 시작을 클릭합니다. 원하는 서비스를 선택합니다. 저는 무난하게 우분투 서비스를 ..
2020.04.29 -
BAEKJOON #10989 수 정렬하기 3
이 문제의 저작권은 BAEKJOON에 있습니다. https://www.acmicpc.net/problem/10989 문제는 위 링크에서 확인할 수 있습니다. import sys N = int(input()) arr = [0] * 10001 for i in range(N): a = int(sys.stdin.readline()) arr[a] = arr[a] + 1 arr_size = len(arr) for b in range(arr_size): if arr[b] !=0: for c in range(arr[b]): print(b) 단순한 정렬 방법으로는 통과할 수 없는 문제였습니다. 시간과 메모리 모두 생각해야하는 문제여서 풀이 방법을 찾기 어려웠습니다. 해결 방법은 생각보다 간단합니다. 문제에서 제한하는 범..
2020.04.18