일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- vscode cp949
- 파이썬 map 함수
- 10430번
- 주니어개발자역량강화
- 항해플러스
- 코딩테스트
- cp949
- 주니어개발자멘토링
- 파이썬
- 날 문자열
- 99클럽
- EnvCommandError
- not a git repository
- fatal:not a git repository
- Fatal Python error: init_fs_encoding: failed to get the Python codec of the filesystem encoding
- 파이썬 sep
- 개발자사이드프로젝트
- 항해
- 10172번
- 개발자스터디
- Til
- print("""
- print sep
- 코딩부트캠프후기
- 99일지
- MomentumParameters
- 파이썬 클래스
- 파이썬 int()
- 백준
- 파이썬 |
- Today
- Total
목록스파르타코딩클럽 (35)
선발대
프로그래머스: 소수 찾기 (링크) 소수 자체를 판별하는 방법은 예전에 풀어봐서 알고 있었는데 가능한 조합을 찾는 방법이 바로 떠오르지 않았다. permutations 사용은 감이 왔는데 매번 달라지는 가짓수를 어떻게 선택하나 싶었다가 다른 분의 블로그에서 힌트를 얻을 수 있었다. 그냥 for문 돌리면서 가짓수를 변경한 조합을 리스트에 저장하고 나중에 join으로 합쳐준 뒤 int로 변경하면 되는 방식이었다. 이렇게 되면 "17"이 주어졌을 때 int_num에는 [1, 7, 17, 71] 이 남게 된다. 그리고 하나 더 중요한 점이 combination이 아니라 permutation을 사용했기 때문에 만약 [1, 1, 2]인 경우 11이 2번 나오게 된다. 이런 경우 때문에 정답을 출력 시 set으로 중복..
28324번: 스케이트 연습 (링크) 단순하게 생각해서 전체 리스트 중 최소값을 기준으로 '최솟값 + (최솟값+1)*(n-1)'로 구할 수 있다고 생각했다. 그런데 문제 조건에 따르자면 중간 지점에서 원하는대로 최댓값으로 올라갈 수 있는데 이 부분을 미처 고려하지 못했다. 전체 for문을 돌려서 최솟값과 비교하며 하나씩 해볼까 하다가 다르게 푸신 분이 계셔서 참고했다. 문제의 조건에 따르자면 마지막 지점에서는 속도가 0이어야 하고, 속도는 내려갈 때 1씩만 감소할 수 있으므로 마지막 중간지점은 무조건 속도가 1이어야 한다. 이렇게 limit_velocity를 미리 1 값을 주고 for문도 n-1번만 돌린다. 마찬가지로 감속은 1씩만 가능하므로 현재 중간지점의 속도는 그 뒤의 속도 개수에 따라 최댓값이 정..
프로그래머스: 숫자 변환하기 (링크) 처음에는 재귀로 풀 수 있을 것이라 생각하고 돌렸는데 계속 오류가 나서 결국 다른 사람의 풀이를 찾아봤다.dp에 매번 값을 넣어두고 set을 이용해서 동일한 값을 제거하는 방식으로 풀었다.x값이 초기 dp에 있으므로 x값과 동일한 y값이 나타나면 그 때의 answer를 리턴하게 된다.막상 풀이를 보면 간단한데 아직 적재적소에 맞는 방법이 바로 떠오르지 않는 것 같다. def solution(x, y, n): answer = 0 dp = set() dp.add(x) while dp: if y in dp: return answer else: dp_y = set() ..
15686번: 치킨 배달 (링크) 백트래킹 문제지만 다른 블로그 풀이를 참고해서 파이썬 combination으로 풀었다.파이썬 조합 라이브러리 사용법을 좀 더 알아둬야겠다. (1) 데이터 입력받기(2) 전체 그래프를 돌면서 1(집), 2(치킨집)의 좌표를 찾음(3) combination을 이용해서 집 ~ 치킨집 사이의 최소 거리를 찾음 from itertools import combinationsimport sys# 1. 데이터 입력 받기n, m = map(int, sys.stdin.readline().split())graph = []chicken = []city = []for _ in range(n): graph.append(list(map(int, sys.stdin.readline().split(..
2010번: 플러그 (링크) 생각해보면 간단하다. 전체 멀티탭의 플러그 개수를 입력 받고 거기에 각각의 멀티탭을 연결하는 개수를 빼주면 된다. import sysinput = sys.stdin.readlinen = int(input())multitaps = [int(input()) for _ in range(n)]print(sum(multitaps)-(n-1))
1309번: 동물원 (링크) 점화식 규칙을 찾지 못해서 다른 풀이를 참고했다. DP로 작게 쪼개서 생각하면 됨!n = 1, 2 인 경우에만 초기에 설정해주고 그 다음부터는 그 직전에 추가하면 된다. n = 10마리: 11마리: 2총합: 3 n = 20마리: 11마리: 42마리: 2총합: 7 n = 30마리: 11마리: 62마리: 83마리: 2총합: 17 n = 40마리: 11마리 82마리: 183마리: 124마리: 2총합: 41 import sysinput = sys.stdin.readlinen = int(input())dp = [0] * 100001dp[1], dp[2] = 3, 7for i in range(3, n+1): dp[i] = (dp[i-1] * 2 + dp[i-2]) % 9901pri..
15700번: 타일 채우기 4 (링크)엄청 간단한 문제였다. 큰 문제점은 없었고 쉽게 해결할 수 있었다.생각해보면 주어진 입력값으로 만들어지는 배열은 항상 직사각형 또는 정사각형이다.따라서 2 x 1, 1 x 2 타일로 채우려면 그냥 그 입력값으로 받은 직사각형 배열 개수를 2로 나누어 주면 된다. 내일도 차근차근 풀어봐야겠다. import sysinput = sys.stdin.readlinen, m = map(int, input().split())print(n * m // 2)
드디어 6월부터 8월까지 좌충우돌 직장인 팀 프로젝트가 끝났다. 와 이제 잘 수 있다 사실 그동안 회고를 거의 안 쓰고 있었는데 이번에 최종 회고를 적어보려 한다. 확인해보니 블로그에 적은 회고가 작년 5월이었다. 노트에 일정이랑 그 날 배운 내용을 따로 정리하다보니 시간이 흘렀다. 어쨌든 어느새 취업을 해서 이제 딱 1년차가 된 파이썬 백엔드 개발자가 되었다. 처음에 어떻게 공고를 보게 되었는지 기억은 안 나는데 마침 항해 플러스 공고를 보게 되었고, 찾아보니까 커리큘럼이 아래와 같았다. 현재 스타트업에 재직 중인데 미리 CI/CD, 모니터링 시스템 구축 등을 배워두면 나중에도 잘 사용할 수 있을 것 같았다. 항해 플러스는 팀으로 프로젝트를 진행한다. 사전 설문을 통해 스파르타 측에서 팀 배정을 해준다..
수업목표 pagination, prefetch를 이해한다. cascade를 이해한다. unit test와 end to end 테스트의 차이를 말할 수 있다. 01. 좋아요 개수를 세기 좋아요 개수를 세기 & manager ## 좋아요 개수 세기 def test_like_count_should_increase(self) -> None: # Given user = User.objects.create(name="test") article = Article.objects.create(title="test_title") # When do_like(user.id, article.id) # Then article = Article.objects.get(id=article.id) self.assertEqual(1, a..
수업목표 Github Action에서 Database와 연결된 자동화 테스트를 실행할 수 있다. 좋아요 기능의 요구사항을 정의하고 Model 클래스를 구현한다. auto_now, AbstractBaseClass, unique_together를 배운다. 01. 마이그레이션 Migration 데이터베이스 변경할 때마다 마이그레이션이 필요함 python manage.py migrate 파이썬 database 탭에서 테이블 생성을 확인함 Migration이 필요한 이유 데이터베이스의 형상은 마이그레이션을 사용해서 관리함. 버전관리시스템처럼 변경 이력을 보존함. 로컬 데이터베이스에서 일어난 수정사항을 그대로 실서버 데이터베이스에도 적용 가능. 변경이력이 남아야지 필드의 이름이 변경되었고 그 데이터가 그대로 넘어갈..
수업목표 다수의 개발자가 함께 작업하기에 편한 프로젝트를 만든다. 자동화 테스트의 중요성을 이해한다. poetry, black, isort, mypy 등 개발자를 도와주는 툴을 익힌다. 01. 모던한 엔터프라이즈 django 개발을 소개합니다. 강의 시작 전에 알아야 할 것 Python 설치: 스스로 python을 설치하고, PATH 변경 가능한지. venv, 가상환경 사용 능력. Python: 변수, 상수, 리터럴에 대한 이해 지역변수, 전역변수, 변수의 스코프 설명 Mutable, Immutable 차이 설명 객체지향: 객체지향의 4대 원칙(캡슐화, 상속, 추상화, 다형성) Django: Django Http Request를 input 받고, Http Response를 output 한다는 점 Djan..
1. 수업 후기 강의 개수: 9개 총 강의시간: 1시간 44분 수업 목표: 1. Django의 구조를 알아보고, 필요한 기초 명령들을 익혀본다. 2. 데이터베이스를 연결하고, 데이터베이스를 사용하는 방법을 알아본다. 3. 사용자 모델을 만들고, 회원가입과 로그인 기능을 직접 만든다. 안녕하슈크림 2. 수업내용 정리 2-1. 2주차 이번주 배울 것 더보기 Django 실행, 관리를 위한 명령어 알아보기 Django ORM 알아보고 DB와 연동하여 사용해보기 Admin 기능 알아보기 사용자 모델 만들고 사용자 관리 기능을 구현해보기 (회원가입 / 로그인) 2-2. 프로젝트 구조 만들기 더보기 01. 장고가 일하는 순서 user ←→ URL Conf, Template ←→ View ←→ Model (ORM) ..
1. 수업 후기 강의 개수: 12개 총 강의시간: 1시간 43분 수업 목표: 1. 웹의 기본적인 구조를 이해하고, 5주동안 만들 프로젝트를 살펴본다. 2. Python의 기초를 다룬다. 3. Django의 기본 구조와 동작 원리를 이해한다. 안녕하슈크림 2. 수업내용 정리 1-1. 1주차 우리가 배울 것 더보기 더보기 01. 우리가 배울 기술 Python HTML / CSS Django 침착함 02. 완강 후 우리의 모습 & 주차별 학습 내용 1주차: Python 문법과 Django의 구조와 명령어 2주차: Django ORM과 Django Admin, Django 사용자 관리 3주차: Django 사용자 모듈 확장하기, 글 읽기 / 쓰기 / 지우기 4주차: Django 팔로우 / 팔로잉 만들기, 기능 ..
1. 수업 후기 강의 개수: 10개 총 강의시간: 1시간 21분 수업 목표: 1. 다양한 딥러닝 신경망 구조에 대해 알아본다 2. 전이 학습에 대해 배운다. 3. CNN과 전이학습을 직접 적용해본다. 안녕하슈크림 2. 수업내용 정리 4-1. 4주차 오늘 배울 것 더보기 01. 다양한 신경망 구조 신경망 구성방법에는 여러 가지가 있음. 가장 많이 쓰이는 방법들: 합성곱 신경망(CNN), 순환 신경망(RNN), 생성적 적대 신경망(GAN) 우리가 3주차에 배웠던 DFF 도 아래에 나와있음. 02. 전이학습 전이학습: 이미 학습된 모델을 비슷한 문제 풀 때 다시 사용하는 것 더 적은 데이터로 더 빠르고 정확하게 학습시킬 수 있어 실무에서도 많이 사용함. 4-2. Convolutional Neural Netwo..
1. 수업 후기 강의 개수: 8개 총 강의시간: 1시간 14분 수업 목표: 1. 딥러닝의 역사를 배운다. 2. 신경망을 만드는 데 필요한 각종 개념을 알아본다. 3. 신경망을 직접 디자인해본다. 2. 수업내용 정리 3-1. 3주차 오늘 배울 것 더보기 01. 딥러닝이란? 인공지능 → 머신러닝 → 딥러닝 선형회귀, 논리회귀는 모두 1차 함수로 문제를 풀었으나, 자연계에는 직선으로 풀 수 없는 문제가 많음. 복잡한 문제 풀이를 위해 선형회귀 반복했으나, 그렇다고 해서 비선형이 되는 것은 아님. 그래서 선형회귀 사이에 비선형의 무엇인가를 넣어야 한다고 생각해서 층을 여러 개 쌓기 시작함. 선형회귀 - 비선형 - 선형회귀가 이어지는 모델은 잘 동작했고, 층을 깊게(Deep) 쌓아서 딥러닝으로 부름. 딥러닝(De..