본문 바로가기

전체 글83

[Python] 백준 2866 문자열 잘라내기 문제 링크 : https://www.acmicpc.net/problem/2866 2866번: 문자열 잘라내기 첫 번째 줄에는 테이블의 행의 개수와 열의 개수인 R과 C가 주어진다. (2 ≤ R, C ≤ 1000) 이후 R줄에 걸쳐서 C개의 알파벳 소문자가 주어진다. 가장 처음에 주어지는 테이블에는 열을 읽어서 문자 www.acmicpc.net 1. 접근 방법 전체 탐색을 하기에는 많은 것 같고, 탐색을 줄이며 해결하기 위해 이분 탐색을 선택했다. 각 문자열이 중복인지 확인하기 위해 집합을 사용했다. 2. 풀이 코드 🖥python 코드 링크 : https://github.com/mintropy/baekjoon_py/blob/master/2000/2800/2866.py GitHub - mintropy/bae.. 2022. 3. 13.
22-03-06 프로그래머스 2022 SK ICT Family 개발자 채용 챌린지 1차 후기 편하게 코딩 테스트 연습도 하자라는 마음으로 시작을 했고, 나름 어렵지 않은 문제가 출제된 것 같았다. 1. 거스름돈 문제 응용과 유사한 그리디 나는 약간의 하드코딩을 더하여 해결했고, 해당하는 값을 미리 저장하는 등 작업과 for, while을 잘 활용하면 코드의 중복을 포함하여 하드코딩 없이 해결할 수 있을 것 같다. 2. 백준의 별 찍기와 유사한 구현 문제 주어진 규칙에 따라 출력 값을 구하면 된다. 규칙을 저장하여 if, for문을 최소화하려고 했다. 3. 조합 처음 DP라고 고민했는데, 각 주어진 변수마다 조합의 수를 구하고, 각 조합 경우의 수를 곱하거나 더하여 출력하는 문제 4. 트리의 부모, 자식을 활용한 문제 추가적으로 경우를 잘 구분하여 정답을 계산해야 했다. - 22-03-17 추가 .. 2022. 3. 12.
[Python] 백준 20928 걷는 건 귀찮아 문제 링크 : https://www.acmicpc.net/problem/20928 20928번: 걷는 건 귀찮아 일직선 위에 놓인 $N$개의 지점 $p_i$에는 최대 $x_i$만큼 이동시켜주는 인력거꾼들이 있다. 즉, $p_i$에 있는 인력거꾼은 $p_i$, $p_i+1$, $p_i+2$, $...$, $p_i+x_i$ 중 한 지점까지 승객을 데려다준다. 세상 www.acmicpc.net 1. 접근 방법 DP나 큐를 활용한 탐색을 고민했는데, 계속해서 시간 초과되었다. 최대 1,000,000까지 탐색을 해야 돼서 N 또는 2N정도로 해결하는 방법을 찾아야 했다 2. 풀이 코드 🖥python 코드 링크 : https://github.com/mintropy/baekjoon_py/blob/master/2000.. 2022. 3. 6.
22-03-06 프로그래머스 2022 Dev-Matching: 게임 프로그래머 후기 총 세문제가 나왔고, 조금 늦게 입장해서 급하게 푼다고 잘 풀지는 못한 것 같다. 오랜만에 푸는 코딩 테스트에 조금 더 가중치를 두어 노력했다. 총 세문제가 나왔고, 세 문제를 다 풀어야 통과될 수도 있겠다는 생각도 들었다. 나는 한 문제를 해결하고, 두 문제는 전반적인 코드 흐름만 구현하고 제출했다. 1. 큐를 활용하여 일정 범위마다 값을 저장, 출력에 활용하는 문제 각 범위를 날짜로 활용했는데, 날짜 저장과 계산에서 고민을 하다가 해결하지 못했다. 그냥 월/일 대산 1일부터 365일로 계산했으면 더욱 편하게 해결했을 것 같다 2. 그래프 탐색 오목을 활용한 문제로, 플레이어가 한명이라 탐색 자체는 간단하게 해결할 수 있었다 3. 구현 백트레킹으로는 힘들 것 같았고, 큐를 활용한 방식으로 BFS를 구현.. 2022. 3. 6.
[Python] 백준 11000 강의실 배정 문제 링크 : https://www.acmicpc.net/problem/11000 11000번: 강의실 배정 첫 번째 줄에 N이 주어진다. (1 ≤ N ≤ 200,000) 이후 N개의 줄에 Si, Ti가 주어진다. (0 ≤ Si < Ti ≤ 109) www.acmicpc.net 1. 접근 방법 시작 끝 시간을 기반으로 간단한 그리디라 생각했는데, 문제를 다시 읽고 보니 전체 강의 실수를 확인하는 조금 번거로울 수 있는 문제였다. 이를 해결하기 위해 heap을 활용하여 가장 빨리 끝나는 시간 기준으로 고민했다. 2. 풀이 코드 🖥python 코드 링크: https://github.com/mintropy/baekjoon_py/blob/master/11000/11000.py 📕코드 해설 시작 시간 기준으로 오.. 2022. 2. 27.
[Python] 백준 13164 행복 유치원 문제 링크 : https://www.acmicpc.net/problem/13164 13164번: 행복 유치원 행복 유치원 원장인 태양이는 어느 날 N명의 원생들을 키 순서대로 일렬로 줄 세우고, 총 K개의 조로 나누려고 한다. 각 조에는 원생이 적어도 한 명 있어야 하며, 같은 조에 속한 원생들은 서로 www.acmicpc.net 1. 접근 방법 정렬을 우선적으로 했고, 그 이후 어떻게 짝을 지어갈지 결정해야 하는데 그 방법에서 조금 고민을 했다 2. 풀이 코드 🖥python 코드 링크: https://github.com/mintropy/baekjoon_py/blob/master/13000/13164.py GitHub - mintropy/baekjoon_py: BOJ를 Python으로 해결한 코드의 저장.. 2022. 2. 27.
Django DRF에서 serializer와 pydantic 들어가기에 앞서 1. DRF는 Django REST Framework를 의미합니다. 2. pydantic은 Python validation을 위한 라이브러리입니다. 이 글의 목적 - DRF를 사용한다면 serializer를 사용하는 것이 더 좋다고 생각합니다. - 하지만, pydantic을 활용하여 어느 정도 대체 가능한지 확인해보기 위함입니다. pydantic 공식문서의 벤치마크에 따르면 data validation에서는 serializer가 12배 이상 느리다는 평가가 있어 궁금증을 가지게 되었습니다. 코드 비교 및 설명 - 코드 : https://github.com/mintropy/Python-web-framework GitHub - mintropy/Python-web-framework Contri.. 2022. 2. 26.
[Python] 백준 21924 도시 건설 문제 링크 : https://www.acmicpc.net/problem/21924 21924번: 도시 건설 첫 번째 줄에 건물의 개수 $N$ $(3 \le N \le 10^5 )$와 도로의 개수 $M$ $(2 \le M \le min( {N(N-1) \over 2}, 5×10^5)) $가 주어진다. 두 번째 줄 부터 $M + 1$줄까지 건물의 번호 $a$, $b$ $(1 \le a, b \le N, a ≠ b)$와 두 www.acmicpc.net 1. 접근 방법 오랜만에 MSP 문제를 접근하여 방법이 잘 떠오르지 않아 여러 가지 방법을 시도하다가, 결국 union-find로 해결했다 2. 풀이 코드 🖥python 코드 링크: https://github.com/mintropy/baekjoon_py/blob.. 2022. 2. 21.
[Python] 백준 16562 친구비 문제 링크 : https://www.acmicpc.net/problem/16562 16562번: 친구비 첫 줄에 학생 수 N (1 ≤ N ≤ 10,000)과 친구관계 수 M (0 ≤ M ≤ 10,000), 가지고 있는 돈 k (1 ≤ k ≤ 10,000,000)가 주어진다. 두번째 줄에 N개의 각각의 학생이 원하는 친구비 Ai가 주어진다. ( www.acmicpc.net 1. 접근 방법 union-find로 친구들을 묶으면 된다고 생각했고, 나름 쉽게 잘 풀렸던 것 같다 2. 풀이 코드 🖥python 코드 링크: https://github.com/mintropy/baekjoon_py/blob/master/16000/16562.py GitHub - mintropy/baekjoon_py: BOJ를 Pytho.. 2022. 2. 20.