전체 글
-
개인용 프로젝트 - Tournament_Info (3)Web/프로젝트 2026. 3. 5. 10:07
핵심 api인 토너먼트 조회, 상세조회, 토너먼트 생성을 작업하였다 토너먼트 생성 view에서, 기존의 로직과는 다르게 serializers.py를 통한 검증, services.py로의 view 분리를 하였다#serializers.pyclass TournamentCreateSerializer(serializers.ModelSerializer): class Meta: model = Tournament fields = [ "title", "description", "max_entries", "max_reentries", "max_addons", "registra..
-
개인용 프로젝트 - Tournament_Info (2)Web/프로젝트 2026. 2. 11. 15:11
users, shops app을 작업했다 class SignupView(APIView): def post(self, request): email = request.data.get("email") password = request.data.get("password") username = request.data.get("username") role = request.data.get("role") if not all([email, password, username, role]): return Response( {"detail": "missing required fields"}, ..
-
개인용 프로젝트 - Tournamen_Info (1)Web/프로젝트 2026. 2. 7. 02:44
Django 복습용 + 포트폴리오 용으로 프로젝트 하나를 기획했다.한때 홀덤 토너먼트에 빠져 살았던적도 있었고, 개인적으로도 만들어보고 싶어서 홀덤 토너먼트 관련 프로젝트로 정했다. 핵심 기능은 다음과 같다.플레이어 : 토너먼트 조회 및 참가홀덤펍회원 : 토너먼트 생성 및 관리 먼저 DB 생성을 위한 ERD 기획을 했다.Users 테이블회원 계정 관리 (PLAYER / SHOP_OWNER / ADMIN)컬럼: id, email, username, password_hash, role, money, is_active, last_login_at, created_at특징 : role 기준 권한 관리, money는 테스트용 사이버머니Shops 테이블홀덤샵 관리컬럼: id, name, owner_idFK: owne..
-
백준 2941 풀이일반 프로그래밍/알고리즘 2026. 2. 6. 17:43
https://www.acmicpc.net/problem/2941 문제풀이 방향1.크로아티아 문자 자체는 리스트로 하드코딩한다2.크로아티아 문자들을 한문자로 replace하고 그 결과물의 길이를 센다word = input()patterns = ['dz=', 'c=', 'c-', 'd-', 'lj', 'nj', 's=', 'z=']for p in patterns: word = word.replace(p, '*')print(len(word))dz= 하고 z=는 문자형태가 겹치니까, dz= 를 먼저 처리해야 오류가 발생하지 않는다
-
백준 1316 풀이일반 프로그래밍/알고리즘 2026. 2. 6. 16:04
문제 내용, 입력 & 출력 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때문에 그룹 단어이지만, aabbbccb는 b가 떨어져서 나타나기 때문에 그룹 단어가 아니다. 단어 N개를 입력으로 받아 그룹 단어의 개수를 출력하는 프로그램을 작성하시오.첫째 줄에 단어의 개수 N이 들어온다. N은 100보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 단어가 들어온다. 단어는 알파벳 소문자로만 되어있고 중복되지 않으며, 길이는 최대 100이다. 예를들어3happynewyear이러면 세 단어 모두 조건을 충족하므로 3을 출력한다 로직 설계n..
-
백준 쉬운문제들 정리일반 프로그래밍/알고리즘 2026. 2. 5. 13:08
최근에 코딩테스트 준비를 다시 시작하면서기본 문제들을 중심으로 공부하는 중이다.아래는 그 과정에서 정리한 핵심 포인트들이다. 1. 리스트에서 최댓값과 위치 찾기핵심 포인트max()는 값만 반환한다위치(인덱스)가 필요하면 enumerate를 사용한다max_val = max(arr)for i, v in enumerate(arr): if v == max_val: idx = i break 2. 딕셔너리로 등장 횟수 세기 (빈도 문제) 알파벳, 숫자 등 종류별 개수를 셀 때는 딕셔너리가 정석이다.핵심 포인트키를 미리 만들지 않는다입력을 보면서 자동으로 생성한다dic = {}for x in arr: if x in dic: dic[x] += 1 else: ..
-
보이닥 어플리케이션 프로젝트Web/프로젝트 2022. 7. 22. 22:08
프로젝트 개요 위코드에서 2개월간의 교육과정을 마친 후 퍼즐AI의 기업협업에 참여하여 진행한 프로젝트이다. 비대면 화상진료, 음성인식 AI를 활용한 처방전 작성등의 기능이 있는 앱인 '보이닥'의 예약 생성 기능을 구현하는데 중점을 두었다. git repository : https://github.com/NamkyuAhn/puzzleai-voicedoc-backend 시연 영상 : https://www.youtube.com/watch?v=pjLCQCTyI4o 원본앱 링크 : https://apps.apple.com/kr/app/%EB%B3%B4%EC%9D%B4%EB%8B%A5-%EC%A0%84%EB%AC%B8%EC%9D%98-%EC%9B%90%EA%B2%A9%EC%A7%84%EB%A3%8C/id152611..
-
WeClass200 - 위코드 2차 프로젝트Web/프로젝트 2022. 7. 4. 09:39
짧았던 2주간의 1차 프로젝트를 뒤로하고, 새로운 팀원들과 함께 2차 프로젝트를 진행하였다. 1차 프로젝트에서 구현하지 못한 기능 구현에 집중하여 프로젝트를 진행할려고 하였으나, 수강해야되는 세션의 양이 1차 프로젝트때보다 많고, 기업 협업 준비로 인해 실제로 사용할 수 있는 시간이 줄어들었기 때문에 내실 다지기에 집중하기로 팀원들과 협의하였다. 2차 프로젝트 개요 클론 한 원본 사이트 : 클래스101(https://class101.net/) 저작권을 우려하여, 실제 32기 팀원들의 사진을 촬용하고 편집하여 상품 이미지로 사용하였다. 이러한 일련의 과정을 맡아주신 유림님께 감사를 표한다. git repository : https://github.com/NamkyuAhn/32-2nd-weClass200-b..