python3

Python/백준 알고리즘

[백준 알고리즘: python3] #2869 - 달팽이는 올라가고 싶다.

www.acmicpc.net/problem/2869 단계별 문제에 기본 수학 1에 올라와 있던 문제입니다. 당연히, 올라갔다 내려갔다를 반복하는 알고리즘을 짜면 안되고, 도착했을 시점에 며칠이 흘렀는지 계산하는 수학 식을 적절히 세워야합니다. 🤔 고민된 점 특별히 고민이 될만한 점...이라기 보다는, 달팽이가 마지막에 목표 높이에 올라가는 시점에 며칠이 지났는지를 측정한다는 점을 주의해야 한다는 정도였습니다. 그러니까, 목표 높이에 닿으면 다시 미끄러질일이 없다는 점을 주의해야해요. ✔️ 힌트/해결법 먼저, 달팽이는 하루에 A미터 올라가고 B미터 내려가는 행동을 반복하기 때문에 하루가 지나면 최종적으로 A-B 미터를 움직인다는 것을 쉽게 알 수 있습니다. 앞서 말했듯이, 중요한 점은 A미터를 올라갔을 때..

각종 버그 🐞/Python

[Python] requests 패키지의 ConnectionResetError(104, 'Connection reset by peer')

python의 requests 패키지를 사용하다가 보면 간혹 connection reset by peer라는 내용의 104 에러가 발생하곤 합니다. 소켓 연결 실패 시에 생기는 에러인 것으로 알고 있는데, 1시간 가량의 구글링에도 답을 찾지 못하다가 header를 추가하는 방식으로 해결해서 그 과정을 정리해 두려고 합니다. 문제 상황은 requests 패키지의 get 함수를 사용해 크롤링을 진행하려다가 발생했습니다. 아마 다들 비슷하실 것 같은데요, 구체적으로는 다음의 코드를 실행하다가 발생했습니다. import requests r = requests.get("http://patft.uspto.gov/") 에러 내용은 다음과 같았습니다. Traceback (most recent call last): Fi..

Python/백준 알고리즘

[백준 알고리즘: python 3] #2805 - 나무자르기(이분 탐색 스터디)

https://www.acmicpc.net/problem/2805 2805번 문제는 백준 알고리즘의 이분 탐색 단계에 속하는 비교적 낮은 성공률의 문제입니다. 문제의 성공률이 낮아 어려울까 생각을 했었는데, 이분 탐색의 개념을 그대로 적용할 수만 있다면 난이도가 높은 문제는 아니었습니다. 이분 탐색은 매 스텝마다 탐색의 범위를 절반씩 줄여나가며 정답으로 가까워지는 탐색 방법으로 탐색 방법 중 매우 빠른 속도를 자랑하는 알고리즘입니다. 흔히, 오름차순으로 이루어진 배열에서 원하고자 하는 값을 찾을 때 이분 탐색을 사용해 빠르게 찾아내는 것을 예시로 들어 설명하는 것 같았습니다. 저는 이분 탐색의 개념을 이 블로그에서 쉽게 알 수 있었는데요, 그림으로 차근차근 설명이 되어 있으니 공부하실 때 참고하시면 좋을..

Python/백준 알고리즘

[백준 알고리즘: python 3] #1027 - 고층 건물

https://www.acmicpc.net/problem/1027 1027번 문제는 겉보기에 그렇게 어렵지 않게 보이지만, 약간의 수학적인 아이디어가 필요한 문제입니다. 여기서 사용된 수학적인 아이디어란, 어떤 건물에서 다른 건물을 볼 수 있는 조건이 수학적으로 어떻게 해석되느냐? 에 대한 답을 할 수 있어야 한다는 것이었네요. Hint! 문제에서는 어떤 건물(x1, y1)에서 다른 건물(x2, y2)을 볼 수 있으려면, 두 건물을 이은 선분이 다른 건물을 지나거나 접하지 않아야 한다고 했습니다. 아래의 그림은 임의의 한 건물을 기준으로 오른쪽을 볼 때, 볼 수 있는 건물들이 무엇이 있는지 보여준 것입니다. 아이디어 설명을 위해 그렸네요. 우선, 빨간색 건물을 기준으로 본다고 할 때, 저는 이 건물의 오..

Python/백준 알고리즘

[백준 알고리즘: python 3] #1026 - 보물

https://www.acmicpc.net/problem/1026 1026번 문제는 보물이라는 이름으로 소개되어 있습니다. 어렵지 않은 문제였고, 다만 저는 문제를 풀 때 두가지 방법이 생각이 났었네요. Hint! 이 문제에서 주어진 것처럼, A는 재정렬을 해야하는 수열, B는 그대로 있어야 하는 수열입니다. S는 두 배열의 각 원소끼리 곱하여 더하는 수식을 의미합니다. (임의로 배열을 설정하고 수식에 적용하시면 알 수 있습니다.) 두 배열의 각 원소끼리 곱하여 더했을 때, 최소가 되는 상황은 한 원소가 크면 클수록 곱해지는 다른 원소는 작아져야 한다는 것입니다. 문제의 예제와 힌트를 보면, 재정렬된 A는 B의 원소들 중 가장 큰 원소 (8)를 A 원소들 중, 가장 작은 수(0)와 매치하고 그 다음 큰 ..

Python/백준 알고리즘

[백준 알고리즘: python 3] #1931 - 회의실 배정 (Greedy 알고리즘 스터디)

https://www.acmicpc.net/problem/1931 이번 문제는 Greedy 알고리즘에 대한 개념을 공부하기 위해 선정된 1931번 회의실 배정 문제입니다. Greedy 알고리즘이 이름이 생소해서 시간이 좀 걸릴까 했는데, 개념 자체는 그렇게 어렵지 않고 그 개념을 그대로 이해해서 풀 수 있는 문제여서 적절히 잘 배운 것 같습니다. Greedy 알고리즘, 탐욕 알고리즘은 매 순간마다 최적의 답을 찾아가는 알고리즘입니다. 보통 이전에 리뷰한 Dynamic Programming(DP)과 비교가 되곤 하는데요, 되도록 모든 경우에 대해 탐색을 해서 전체의 해결책을 찾는 DP와는 달리 탐욕 알고리즘은 지금 당장의 분기마다 최적의 답만 찾아간다는 것이 다릅니다. 1분의 시간이 있는데, 지금 당장 바..

웹/Django

Django 서비스 AWS로 배포하기 - [6] https 적용하기

Django 서비스 AWS로 배포하기 - [1] 프로젝트 준비와 AWS 서버 대여 Django 서비스 AWS로 배포하기 - [2] github과 프로젝트 업로드 Django 서비스 AWS로 배포하기 - [3] uWSGI 연결하기 Django 서비스 AWS로 배포하기 - [4] nginx 연결하기 Django 서비스 AWS로 배포하기 - [5] 도메인 연결하기 (가비아) 이번 포스트는 AWS Certificate Manager를 이용해 SSL 인증서를 발급하고 nginx에 적용하여 HTTPS 주소로 웹 페이지를 운영할 수 있도록 해보겠습니다. 여기까지 하시면 웹 페이지 배포와 관련된 기본적인 부분은 모두 완료되었다고 생각하시면 됩니다! 그리고 아래 과정을 통해 과금이 발생할 수도 있습니다. 정확히 얼마나 ..

웹/Django

Django 서비스 AWS로 배포하기 - [5] 도메인 연결하기 (가비아)

Django 서비스 AWS로 배포하기 - [1] 프로젝트 준비와 AWS 서버 대여 Django 서비스 AWS로 배포하기 - [2] github과 프로젝트 업로드 Django 서비스 AWS로 배포하기 - [3] uWSGI 연결하기 Django 서비스 AWS로 배포하기 - [4] nginx 연결하기 nginx를 연결하여 자신의 프로젝트를 연결했다면, 이젠 못생긴 url 주소를 변경하고 싶으실 겁니다. 이번 포스트에서는 가비아에서 도메인 주소를 구입하여 AWS에 연결해보도록 하겠습니다. (+2020.11.23 추가) AWS 상에서 Route 53 부분의 UI 디자인이 바뀐 부분을 인지해둔 상태입니다. 업데이트를 해두려면 날을 잡고 살펴봐야 하는데 여유가 잘 없네요 ㅠㅠ 조만간 업데이트 해두려고 합니다! 일단 ..

Python/백준 알고리즘

[백준 알고리즘: python 3] #2178 - 미로탐색(BFS 스터디)

https://www.acmicpc.net/problem/2178 2178번 문제는 알고리즘 스터디에서 BFS 주제로 잡은 문제입니다. 기본적인 BFS 문제인 것으로 생각이 될 정도의 난이도인 것 같고 연습하기에 좋은 것 같습니다. Breadth First Search(너비 우선 탐색)의 줄임말인 BFS는 깊이 우선 탐색인 DFS 와 함께 소개가 되고는 합니다. 노드를 전부 탐색한다는 점에서 비슷하지만 탐색하는 방식의 차이 때문에 각각의 방법으로 풀 수 있는 문제가 구분되기도 하기 때문인데요, 미로에서 시작 지점부터 도착 지점까지 최소거리를 구하는 이번 문제가 대표적인 BFS 문제로 여겨지는 것 같습니다. BFS는 DFS와는 달리 재귀적인 함수의 형태를 가지지 않는 점과, Queue 자료 구조를 사용한다..

웹/Django

Django 서비스 AWS로 배포하기 - [4] nginx 연결하기

Django 서비스 AWS로 배포하기 - [1] 프로젝트 준비와 AWS 서버 대여 Django 서비스 AWS로 배포하기 - [2] github과 프로젝트 업로드 Django 서비스 AWS로 배포하기 - [3] uWSGI 연결하기 사용자의 브라우저를 통한 요청은 웹 서버가 받는 것이 일반적이지 uwsgi가 받아 처리하는 것은 적절하지 않습니다. 이번 포스트에는 저번 포스트를 통해 Django와 연결해둔 uwsgi 서버와 nginx를 연결해 1차 배포를 완료해 보겠습니다. * 2022.01.30 업데이트 3번 글처럼 deploy라는 계정을 만들어 사용하는 부분이 없어짐에 따라, 아래 deploy 계정을 썼던 부분들이 수정되었습니다. 기존에 포스팅을 참고하셨던 분들은 유의 바랍니다! nginx 와 uwsgi를..

hellonero
'python3' 태그의 글 목록