본문 바로가기

전체 글83

[Python] 백준 9202 Boggle 문제 링크 : https://www.acmicpc.net/problem/9202 9202번: Boggle 각각의 Boggle에 대해, 얻을 수 있는 최대 점수, 가장 긴 단어, 찾은 단어의 개수를 출력한다. 한 Boggle에서 같은 단어를 여러 번 찾은 경우에는 한 번만 찾은 것으로 센다. 가장 긴 단어가 여러 개 www.acmicpc.net 1. 접근 방법 주어지는 알파벳 판에서 등장하는 단어들을 찾아내는 문제로, 알파벳 보드 판에서는 8방향 탐색이 가능하고, 찾아낸 단어들은 총 3가지 출력을 해야 한다. 문자열을 찾는 문제여서 트라이를 활용했다. 주어진 단어를 트라이 구조로 만들어 탐색에 활용했고, 시간을 줄이기 위해 몇 차례 시행착오를 거쳤다. 2. 풀이 코드 🖥python 코드 링크 : https.. 2022. 9. 20.
[Python] 백준 연구소 시리즈 문제 링크 - 연구소 https://www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net - 연구소 2 https://www.acmicpc.net/problem/17141 17141번: 연구소 2 인체에 치명적인 바이러스를 연구하던 연구소에 승원이가 침입했고, 바이러스를 유출하려고 한다. 승원이는 연구소의 특정 위치에 바이러스 M개를 놓을 것이고, 승원이의 신호와 동시에 바이 www.acmicpc.net - 연구소 3 https://www.acmicpc.net/problem/.. 2022. 9. 8.
Project Zero 3. DRF ViewSet ViewSet ViesSet은 DRF에서 비슷한 연관된 view 클래스를 하나의 클래스로 구현한 것으로 다른 프레임워크에서 Resources 또는 Controllers라고 부르기도 한다. 독특한 점은 class-based view의 한 종류로, 메서드 핸들러를 제공하지 않아서 라우터를 지정하는 .get(), .post() 대신 .list(), .create()를 제공한다는 점이다. DefaultRouter()를 활용하여 자동적으로 라우팅 할 수 있고, .as_view()를 통하여 지정할 수도 있다. 추가적인 장점으로 queryset을 지정하여 여러 view의 유사한 로직을 묶을 수 있고, 라우터를 지정할 때 URL conf를 신경 쓸 필요 없으며, 추가적인 라우터를 사용할 때, @action데코레이터를 .. 2022. 9. 8.
Project Zero 2. react-router-dom 프로젝트 프론트로 React를 사용하고, 처음부터 문제를 마주쳤다. 페이지 라우팅이 필요했다. 얼른 구글에 검색해서 라우팅 할 수 있는 방법을 찾았고, 바로 react-router-dom이다. 이 글을 통해서 라우팅을 지정한 과정을 간략하게 소개하겠다. 프로젝트 초기 코드 // index.js const root = ReactDOM.createRoot(document.getElementById('root')); root.render( ); 나는 index.js에서 바로 라우팅을 했다. 다른 컴포넌트로 구분하여하는 경우도 있었는데, 아직은 라우팅이 많지 않고, 추가적인 컴포넌트를 제작하는 건 한편으로 낭비라고 생각했다. 위의 코드는 create-react-app을 사용하여 제작된 초기 코드이고, 여기서 하.. 2022. 9. 7.
나의 Markdown 사용일지 어느 순간부터 거의 모든 기록을 마크다운 기반으로 작성하고 있다. 여러 가지 이유가 있지만, 텍스트 기반으로 작성한다는 점에서 파일의 크기가 작고 활용이 편리하다는 장점이 있다. 종종 이미지를 활용하기도 하지만, 그러한 상황이 아닌 대부분의 상황에서는 텍스트로 문서를 작성 및 활용하고 있다. Markdown 마크다운의 기본 문법은 간단하다. 몇가지 없고, 이미 많은 자료가 있기 때문에 위키피디아 링크로 대체하겠다. 마크다운 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. ko.wikipedia.org 마크다운은 간편하지만, 한편으로는 너무 간단하기 때문에 순수한 텍스트 기반 문서 작성 이외에는 큰 역할을 하기 힘들어 보인다. 나도 처음에는 간단한 기록, 코드 기반 기록 등에 활용했지.. 2022. 9. 7.
[Python] 백준 17417 게리맨더링 문제 링크 : https://www.acmicpc.net/problem/17471 17471번: 게리맨더링 선거구를 [1, 4], [2, 3, 5, 6]으로 나누면 각 선거구의 인구는 9, 8이 된다. 인구 차이는 1이고, 이 값보다 더 작은 값으로 선거구를 나눌 수는 없다. www.acmicpc.net 1. 접근 방법 주어진 점으로 이루어진 그래프를 두 개의 부분 그래프로 나누는 문제인데, 다른 조건이 없다 보니 모든 경우의 수를 탐색해야 한다. 다행히도 점이 최대 10개만 주어지므로 큰 어려움 없이 해결할 수 있다. 2. 풀이 코드 🖥python 코드 링크 : https://github.com/mintropy/PS/tree/master/BAEKJOON/Python/17000/17400/17471.py.. 2022. 9. 5.
Project Zero 1. 프로젝트의 시작 프로젝트의 시작 SSAFY를 마무리하고, 공부하는 과정과 목표가 조금은 희미해졌다고 느꼈다. 팀원들과 함께 목표를 향해 진행하는 과정이 조금은 버거울 때도 있었지만, 그러한 과정 때문에 프로젝트 과정을 잘 마무리할 수 있었던 것 같다. 그러나 지금은 모든 것이 애매모호해졌다. 주변 동기들이 취업하는 과정이 나를 조금은 조급하게 만드는 것 같고, 부족한 컴퓨터 과학과 관련한 지식은 천근만근 같다. 그래서 한편으로는 목표를 정하고 체계적인 과정을 통하여 조금 더 활력을 일으키기 위해, 또 다른 한편으로는 SSAFY과정 급하게 지나오며 제대로 공부하지 못하고 익히지 못한 것들을 더욱 파고들 기회를 가지고자 한다. 이번 프로젝트 이름 'Zero'는 나의 지식과 실력이 바닥인 상태에서 시작한다는 생각으로 프로젝트.. 2022. 9. 4.
[Python] 백준 20181 꿈틀꿈틀 호석 애벌레 20181번: 꿈틀꿈틀 호석 애벌레 - 효율성 꿈틀꿈틀 호석 애벌레는 N 개의 먹이가 일렬로 나열된 나뭇가지를 오른쪽으로 기어가려고 한다. 시작하는 순간의 호석 애벌레가 0의 위치에 있고 i 번째 먹이는 오른쪽으로 i 초 기어가야 도달할 www.acmicpc.net 1. 접근 방법 주어진 배열에 대해 연속된 구간 중 특정 값을 넘지 않는 최소 크기를 만족하는 구간을 최대한 많이 구해야 하는 문제이다. 그러한 모든 구간을 구하는 것과 동시에 정답을 같이 구하는 과정은 간단하지는 않았다. 아마 조금 더 난이도 높은 문제에서는 동시에 처리하는 방법 등을 요구할 수 있겠지만, 이 문제는 문제에서 요구하는 구간을 찾는 과정, 정답을 찾는 과정을 따로 실행해도 가능하다. 그래서 투포인터를 활용하여 문제에서 요구한 .. 2022. 9. 4.
[Python] 백준 1948 임계경로 문제 링크 : https://www.acmicpc.net/problem/1948 1948번: 임계경로 첫째 줄에 도시의 개수 n(1 ≤ n ≤ 10,000)이 주어지고 둘째 줄에는 도로의 개수 m(1 ≤ m ≤ 100,000)이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 도로의 정보가 주어진다. 처음에는 도로의 www.acmicpc.net 1. 접근 방법 기본적으로 최단 경로를 찾아야 하는 문제인데, 추가적인 조건이 있어서 접근이 조금 까다로웠다. 시작점부터 도착지까지 최대 시간을 구하는 것은 어렵지 않게 해결할 수 있다. 모든 모로를 확인하며 더 늦은 시간으로 갱신하면 된다. 하지만, '이런 사람들이 지나는 도로의 수를 카운트하여라' 부분에서 시간이 걸렸다. 문제에서 말한 문장은 수정이 필.. 2022. 8. 22.