본문 바로가기

전체 글197

20230403 TIL 1. 오늘 배운 것 - Django 1주차 - Python문법과 Django의 구조와 명령어 > 기본적인 Python문법들과 프로젝트 세팅에 관련한 내용들로 듣는데 어려움은 없었다. 현재 Pycharm과 VScode 두가지 다 세팅해서 사용해보는 중이다. Django의 MVT(Model Template View)패턴 M(model) - 데이터베이스의 모델로 저장도고 사용되는 데이터 형태 T(template) - 사용자에게 보여지는 부분 V(View) - 실질적으로 프로그램이 동작하는 부분 url요청 - 응답 사이에 일어나는 서비스들이 존재하는 곳 장고 프로젝트의 구조 외부 - 프로젝트의 컨테이너 내부 - 추가되는 모듈과 기능들을 관리(실제 파이썬 패키지) __init__.py - 현재 폴더가 파이썬 패키.. 2023. 4. 3.
WIL 20230327 ~ 20230402 - 파이썬 팀과제, 알고리즘 알고리즘 - 나를 슬프게 하는(했던) 문제들 더보기 인덱스 바꾸기 https://school.programmers.co.kr/learn/courses/30/lessons/120895 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 최빈값 구하기 https://school.programmers.co.kr/learn/courses/30/lessons/120812 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 직.. 2023. 4. 2.
20230401 TIL 1. 직사각형 넓이 구하기 def solution(dots): (x1, y1), (x2, y2), (x3, y3), (x4, y4) = dots a = abs(x1 - x2) if x1 != x2 else abs(x1 - x3) b = abs(y1 - y2) if y1 != y2 else abs(y1 - y3) return a*b ↓ 삼항 연산자 활용해보기 def solution(dots): (x1, y1), (x2, y2), (x3, y3), (x4, y4) = dots a, b = abs(x1 - x2) or abs(x1 - x3), abs(y1 - y2) or abs(y1 - y3) return a * b 2. 문자열 최빈값 구하기 input = "hello my name is sparta" def.. 2023. 4. 1.
20230331 TIL 알고리즘과 아이컨택하기 1. 알고리즘 특강 정리(추가예정) 더보기 코딩테스트 > 알고리즘 연습은 매일매일 무조건 꾸준히 나오는 유형만 나오지만, 난이도가 올라가는 추세 프로그래밍 언어 기초 자료구조/알고리즘 > 핵심 개념 자료구조/알고리즘 기초 문제풀이 자료구조/알고리즘 문제풀이(양치기-양으로 승부) 의 순서로 공부 코딩테스트 유형 1. 눈이 마주치는 순간 풀어야 하는 문제(쉬운문제) 2. 생각을 쪼개서 자료구조/알고리즘의 개념을 녹여내야 하는 문제 배열의 인덱스에 접근하는 것이 일반적으로 상수 시간복잡도 for문 하나 O(n) 두개면 제곱 세개면 세제곱 if문은 별로 상관없지만 for문은 많아지면 안좋다. 배열 링크드 리스트 장 : 삽입/삭제 단 : 조회는 비효율적 유동적으로 연결고리를 떼었다가 붙였다가 할 수 있는 자료구조.. 2023. 3. 31.
20230330 TIL class 아직도 모르는 사람 class의 상속과 디폴트 2 class의 상속과 디폴트값을 넣는 과정에서 디폴트를 지정해주어도 값이 들어오지 않았다는 에러 문구가 나왔다. def __init__(self, name, hp=random.randrange(40, 51), mp=random.randrange(40, 51), power=random.randrange(40, 51), magic_power=random.randrange(40, 51), speed=random.randrange(6, 9), experience=0, level=1, money=0): def __init__(self, name, power=0, money=1) crazy_cloud = CrazyCloud(player_name, 1, 1, 1, 1, 1, 1, 1, 1.. 2023. 3. 30.
20230329 TIL 또 나만 모르는 VSCODE 단축키, 프로그래머스 문제풀이 개인과제 해설 강의 몰라도 되는 것 class Character(): class Character: 괄호를 써도 되고 안 써도 된다. 두개 똑같음(상속할땐 괄호써야함) 메소드 작성 요령 함수는 지정한 역할 하나만 해주는게 좋다. 따라서 기능이 여러개이면 그냥 메소드를 나누는게 좋다. (IF문으로 쓰면 나중에 유지보수가 힘들다.) 또한 validation은 함수 들어가기 전에 끝내놓는 것이 좋다. (조건문으로 함수안에 막 넣지말고, 변수에 값을 할당해서 함수에는 깔끔하게 들어가는 것을 권장함.) vscode 라이브 쉐어 기능 사용하면 좋다. vscode 기능 change all occurrences (ctrl + f2) 같은 텍스트 모두 선택 (의도치 않은것까지 바뀔 수 있다.) Ctrl shift L 변.. 2023. 3. 29.
20230328 TIL 3일째 class 다시 공부하는 사람 1. 클래스 보충강의 정리 함수가 클래스 안에 있으면 메소드. 밖에 있으면 함수 __init__메소드는 어떤 데이터들을 기반으로 인스턴스를 생성할지 지정한다. 메소드의 첫번째 인자는 무조건 self self를 인자로 받는이유 self는 인스턴스 그 자체 예를 들어 power = 10으로 지정할 시 다른 메소드에서 가져다 쓸 수 없다. 그러나 self.power는 클래스 안에서 공용으로 사용할 수 있다. 즉, self를 이용하여 인스턴스 변수를 설정하거나, 다른 메소드를 호출하거나, 인스턴스의 속성을 변경할 수 있다. class를 여러개 상속받을 수도 있다.(지금 레벨에서는 잘 쓸일 없을 것) 다중 상속시 먼저 상속받은 값을 우선순위로 한다. (자세한 사항은 MRO(메소드 결정 순서)를 참고할 것) 코드를.. 2023. 3. 28.
20230327 TIL 1. randint와 randrange의 차이 randint(a,b) a부터 b까지 랜덤한 수 ex) randint(3,6) => 3 4 5 6 중 1개 randrange(a,b,s) a~b-1까지 범위를 s간격으로, 랜덤하게 ex) randrange(1,10,2) => 1 3 5 7 9 중 랜덤한 1개 2. 함수와 class의 차이 (+데코레이터 한꼬집) 함수는 동사(기능), 클래스는 명사(속성) 그 캐릭터를 만들때마다 일일이 attiribute를 지정하는게 상당히 불편하고 비효율적임.. 함수, 클래스 모두 궁극적인 목적은 코드를 간결하게 구조화 하고, 재사용성을 높이기 위해 사용한다. 함수 작업을 처리하고 작업의 결과를 반환 코드의 여러곳에서 호출 가능 재사용 가능한 코드 블록을 생성 클래스 코드의 .. 2023. 3. 27.
WIL 20230320 ~ 20230326 - Class, 알고리즘 이번주에 배운 것 class 라는것은 과자틀이다 과자틀로 찍어낸 쿠키가 인스턴스(=객체)다. ↓ 과자틀 만들어보기 더보기 class Monster: def __init__(self, name, hp): self.name = name self.max_hp = hp self.hp = hp def attack(self, player): damage = random.randint(3, 7) player.hp = max(player.hp - damage, 0) print(f"{self.name}의 공격! {player.name}에게 {damage}의 데미지를 입혔습니다.") if player.hp == 0: print("GAME OVER") def show_status(self): print(f"{self.nam.. 2023. 3. 26.