본문 바로가기

파이썬

Posts/Python [python 객체지향 프로그래밍] 객체 객체지향 프로그래밍 1. 객체 현실이든 가상이든 속성과 행동으로 떠올릴 수 있다면 모든 것이 객체입니다. 1-1. 객체 지향 프로그래밍 프로그램을 여러개의 독립된 객체들과 그 객체들간의 상호작용으로 파악하는 프로그래밍 접근법을 말합니다. 프로그램을 객체들과 객체들의 소통으로 바라보는 것 게임 캐릭터 객체 속성 : 체력, 목숨, 소유중인 총 행동 : 총을 장전한다, 총을 쏜다, 이동, 체력 0되면 죽음 총 객체 속성 : 모델명, 무게, 장전 총알 갯수 행동 : 총알 발사 총알 객체 속성 : 공격력 행동 : 캐릭터의 체력을 공격력만큼 - 하기 우리가 보는 거의 모든 것들을 객체라고 볼 수 있고 해당 객체들의 속성과 행동 그리고 이것들을 통해 상호작용 하는 프로그래밍을 객체 지향 프로그래밍이라 합니다. 2. .. 2022. 2. 6. 23:25
Posts/Algorithm [프로그래머스] 베스트 앨범 (파이썬) 1. 문제 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 많이 재생된 장르를 먼저 수록합니다. 장르 내에서 많이 재생된 노래를 먼저 수록합니다. 장르 내에서 재생 횟수가 같은 노래 중에서는 고유 번호가 낮은 노래를 먼저 수록합니다. 노래의 장르를 나타내는 문자열 배열 genres와 노래별 재생 횟수를 나타내는 정수 배열 plays가 주어질 때, 베스트 앨범에 들어갈 노래의 고유 번호를 순서대로 return 하도록 solution 함수를 완성하세요. 제한사항 genres[i]는 고유번호가 i인 노래의 장르입니다. plays[i]는 고유번호가 i인 노래가 재생된 횟수입니.. 2022. 2. 6. 18:26
Posts/CS [Python 자료구조] 추상자료형 추상자료형이란? CodeIt 자료구조 수업을 정리한 내용입니다. 기능 연산이 "무엇"을 하는지를 의미합니다. 삽입 연산 기능 순서 데이터에서 원하는 위치에 데이터 저장 구현 기능을 "어떻게" 작성 하는지를 의미합니다. 연산시 필요한 기능 자체를 코드로 작성하는 것을 말합니다. 추상화 어떻게 구현되어 있는지 몰라도 기능만 알아도 사용할 수 있는 것 추상 자료형 자료구조를 추상화 한 것 데이터를 저장/사용할 때 기능만을 고려 리스트 사용 동적배열, 링크드리스트: 자료 구조 리스트: 추상 자료형 추상 자료형 vs 자료 구조 추상 자료형은 어떤 한 기능에 집중하여 구현이 필요 없으나 자료 구조의 경우 어떤 한 기능에 집중하려 한다면 코드 구현이 필요합니다. 추상 자료형을 생각하면 구현없이 코드의 맥락과 흐름에 .. 2022. 1. 30. 00:20
Posts/CS [Python 자료구조] 큐 (Queue) 💡 Goal - 큐를 이해한다. - 큐를 파이썬으로 구현한다. - 큐 특징 2가지 이상 말하기. 개념 FIFO(First In First Out)으로 동작하며 데이터간 순서를 약속하는 추상자료형을 말한다. 가장 먼저 들어온 데이터가 가장 먼저 삭제 대기열과 같은 개념 (ATM기 줄서있는 사람들 모습) 특징 deque를 사용해 큐 자료구조 구현 (doubly-ended-queue의 약자) deque는 내부적으로 doubly linked list로 구현 맨 앞, 뒤에 데이터를 삭제하고 삭제할 수 있게 하는 자료형 enqueue: 끝에 삽입 peek: 시작 개체값 리턴 dequeue: 시작 개체값 제거 큐의 활용 스케줄링 동시에 실행되는 여러 프로세스의 자원을 배정을 적절히 조절해 성능 개선 어떤 작업이 병렬.. 2022. 1. 9. 20:39
Posts/Django 실서비스에 Django ORM API 삽질 + 성능 개선기 본 포스팅에 적혀진 코드 작성 부분의 필드명, DB명은 포스팅을 위해 가상으로 작성하였습니다. 대신 코드는 직접 작성하였고 업무상의 내용이 포함되어 자세한 내용은 생략하였습니다. 1. 문제상황 Django를 통해 API를 개발하면 SQL 대신 ORM을 사용하게 됩니다. Django는 ORM을 작성 할때 debug_toolbar라는 미들웨어를 통해 보다 쉽게 query explain과 select query문을 조회할 수 있습니다. 쿼리의 갯수와 실행계획, ORM을 통해 작성된 쿼리 확인 가능 평소처럼 회사에서 개발하고 있는데 년/월 기준 전체 강사들의 정산 페이지의 정보를 한번에 볼 수 있는 리스트 페이지 API를 개발해야 하는 업무가 생겼습니다. 작업해야하는 API의 조건은 전혀 문제되지 않아 작업에 .. 2021. 12. 23. 23:10
Posts/Algorithm [boj] 더하기 사이클 - 1110 (python) 1. 문제 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, 주어진 수의 가장 오른쪽 자리 수와 앞에서 구한 합의 가장 오른쪽 자리 수를 이어 붙이면 새로운 수를 만들 수 있다. 다음 예를 보자. 26부터 시작한다. 2+6 = 8이다. 새로운 수는 68이다. 6+8 = 14이다. 새로운 수는 84이다. 8+4 = 12이다. 새로운 수는 42이다. 4+2 = 6이다. 새로운 수는 26이다. 위의 예는 4번만에 원래 수로 돌아올 수 있다. 따라서 26의 사이클의 길이는 4이다. N이 주어졌을 때, N의 사이클의 길이를 구하는 프로그램을 작성하시오. 2. .. 2021. 12. 12. 23:36
Posts/Algorithm [boj] 숫자 카드 2 - 10816 (파이썬) 1. 문제 숫자 카드는 정수 하나가 적혀져 있는 카드이다. 상근이는 숫자 카드 N개를 가지고 있다. 정수 M개가 주어졌을 때, 이 수가 적혀있는 숫자 카드를 상근이가 몇 개 가지고 있는지 구하는 프로그램을 작성하시오. 2. 입력 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,000,000보다 작거나 같다. 셋째 줄에는 M(1 ≤ M ≤ 500,000)이 주어진다. 넷째 줄에는 상근이가 몇 개 가지고 있는 숫자 카드인지 구해야 할 M개의 정수가 주어지며, 이 수는 공백으로 구분되어져 있다. 이 수도 -10,000,000보다 크거나 같고.. 2021. 12. 12. 22:30
Posts/Algorithm [boj] 명령 프롬프트 - 1032 (파이썬) 1. 문제 시작 -> 실행 -> cmd를 쳐보자. 검정 화면이 눈에 보인다. 여기서 dir이라고 치면 그 디렉토리에 있는 서브디렉토리와 파일이 모두 나온다. 이때 원하는 파일을 찾으려면 다음과 같이 하면 된다. dir *.exe라고 치면 확장자가 exe인 파일이 다 나온다. "dir 패턴"과 같이 치면 그 패턴에 맞는 파일만 검색 결과로 나온다. 예를 들어, dir a?b.exe라고 검색하면 파일명의 첫 번째 글자가 a이고, 세 번째 글자가 b이고, 확장자가 exe인 것이 모두 나온다. 이때 두 번째 문자는 아무거나 나와도 된다. 예를 들어, acb.exe, aab.exe, apb.exe가 나온다. 이 문제는 검색 결과가 먼저 주어졌을 때, 패턴으로 뭘 쳐야 그 결과가 나오는지를 출력하는 문제이다. 패턴.. 2021. 12. 12. 01:01