본문 바로가기

전체 글124

[Python] itertools 라이브러리 사용법 (조합, 순열, 데카르트 곱) Python의 'itertools' 라이브러리는 간단하게 조합, 순열, 데카르트 곱을 구할 수 있는 라이브러리입니다. 이번 포스팅에서는 itertools의 각 함수가 어떻게 동작하는지 살펴보고, 활용 예제를 통해 이해해보겠습니다.📌 순열(permutations) 순열은 주어진 리스트에서 요소들의 가능한 모든 순서를 계산합니다. 코드from itertools import permutationsdata = ['A', 'B', 'C']result = list(permutations(data, 2)) # 2개씩 순서 있게 뽑기print(result)결과[('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'C'), ('C', 'A'), ('C', 'B')]📌 조합(combinatio.. 2024. 11. 13.
[Algorithm] 다익스트라(Dijkstra) 알고리즘 그래프에서 최단 경로를 구하는 문제를 본적이 있으신가요?일반적으로 최단 경로는 아래 내용을 의미합니다. 간선의 가중치가 있는 그래프에서 두 정점 사이의 경로들 중에 간선의 가중치의 합이 최소인 경로  이러한 최단 경로를 구하는 알고리즘은 여러가지가 있는데요,이번 포스트에서는 최단 경로 알고리즘 중 하나인 "다익스트라(Dijkstra)" 알고리즘에 대해 알아보도록 하겠습니다!다익스트라 알고리즘이란?다익스트라 알고리즘은 하나의 출발 노드에서 다른 모든 노드까지의 최단 거리를 찾는 알고리즘입니다. 이 알고리즘은 보통 우선순위 큐를 사용해 구현하며, 가중치가 양수인 그래프에서 효과적으로 사용됩니다. 핵심은, 한 번의 실행으로 하나의 출발지로부터 모든 목적지까지의 최단 경로를 구할 수 있다는 것입니다. 동작 방식.. 2024. 11. 12.
[Programmers / MySQL] 진료과별 총 예약 횟수 출력하기 (Level 2) 📌 문제문제 설명다음은 종합병원의 진료 예약정보를 담은 APPOINTMENT 테이블 입니다. APPOINTMENT 테이블은 다음과 같며 APNT_YMD, APNT_NO, PT_NO, MCDP_CD, MDDR_ID, APNT_CNCL_YN,APNT_CNCL_YMD는 각각 진료예약일시, 진료예약번호, 환자번호, 진료과코드, 의사ID, 예약취소여부, 예약취소날짜를 나타냅니다. 문제APPOINTMENT 테이블에서 2022년 5월에 예약한 환자 수를 진료과코드 별로 조회하는 SQL문을 작성해주세요. 이때, 컬럼명은 '진료과 코드', '5월예약건수'로 지정해주시고 결과는 진료과별 예약한 환자 수를 기준으로 오름차순 정렬하고, 예약한 환자 수가 같다면 진료과 코드를 기준으로 오름차순 정렬해주세요. 예시APPOINT.. 2024. 11. 11.
[Data Structure] Python의 주요 자료형과 시간 복잡도 정리 파이썬에서 각 자료형의 동작 속도는 내부 구조가 어떻게 되어 있는지, 어떤 작업을 수행할 것인지에 따라 달라집니다.따라서 각 자료형의 시간 복잡도를 이해하면 상황에 따라 최적의 자료형을 선택하는데 도움이 되겠죠! 이번 포스팅에서는 파이썬의 주요 자료형과 그 시간 복잡도를 살펴보겠습니다.리스트(List)★ 주요 특징 : 가변성(Mutable)이 있어 요소 추가/삭제 가능접근 : O(1) 특정 인덱스에 접근하는 데 상수 시간이 걸립니다.삽입 : O(n) (중간에 삽입할 경우), O(1) (끝에 추가할 경우) 리스트 중간에 값을 삽입하면 그 뒤의 요소들을 이동시켜야 합니다.삭제 : O(n) (중간에 삭제할 경우), O(1) (끝에 삭제할 경우) 끝에서 요소를 삭제할 때는 빠르지만 중간에서 삭제하면 삽입과 마찬.. 2024. 11. 10.
[정보처리기사] 4과목 프로그래밍 언어 활용 - 응용 SW 기초 기술 활용(네트워크) 📌 네트워크 기초 활용네트워크(Network)란?여러 장치들이 서로 데이터를 주고 받기 위해 연결된 시스템장치들이 케이블을 통해 물리적으로 연결된 형태안정적이고 빠르지만 이동성에 제한장치들이 무선 신호로 연결간섭이나 신호 강도에 따라 성능이 달라질 수 있음IEEE 802.11무선 네트워크(Wi-Fi) 통신을 위한 표준을 정의하는 규격 802.11eIEEE 802.11 워킹 그룹의 중 QoS 강화를 위해 MAC 기능 지원을 채택한 것MAC(Media Access Control)네트워크에서 여러 장치가 동일한 통신 매체를 공유할 때 데이터 충돌을 막고 효율적으로 통신하게끔 조정함충돌을 탐지하는 CSMA/CD 방식과 충돌을 회피하는 CSMA/CA 방식이 있음CSMA / CD (Carrier Sense Mul.. 2024. 11. 9.
[Django] Locust를 활용한 부하 테스트(Load Testing) 이번 포스팅에서는 Locust를 활용하여 Django 프로젝트에 대해 부하 테스트를 하는 방법에 대해 소개해보려 합니다!부하 테스트(Load Testing)란?한 마디로, 부하 테스트란 아래 질문에 대한 테스트입니다.시스템에 임계점의 부하가 계속될 때 문제가 없는가? 목적 : 시스템의 신뢰도와 성능을 측정Locust란?Locust는 오픈 소스 부하 테스트 도구로, 파이썬 언어로 테스트 시나리오를 간편하게 작성할 수 있습니다.쉽게 말해, 내가 만든 서버에 수많은 사용자들이 동시에 들어올 때 어떤 일이 벌어지는지를 확인하는 도구입니다! 구체적인 내용은 아래 공식 문서를 참고해주세요~!https://locust.io/ Locust.ioAn open source load testing tool. Define u.. 2024. 11. 8.
[SWEA] 4014 활주로 건설 (Python) - Simulation 📌 문제1. 격자의 각 셀에는 지형의 높이가 정수로 주어져 있다.  2. 목표는 가로 또는 세로 방향으로 활주로를 건설할 수 있는 경우의 수를 구하는 것이다. 3. 같은 줄에 높이가 다른 구간이 있다면 반드시 아래와 같은 경사로를 설치해줘야 한다.경사로의 길이: X ( 2 경사로의 높이: 14. 아래는 문제에서 주어진 모든 경우를 나타낸 것이다. 4. 문제에서 주어진 경사로 건설 규칙에 따라 경사로를 건설하면, 예제에 대한 정답은 다음과 같이 7이 된다.📌 풀이CodeT = int(input())for tc in range(1, 1+T): N, X = map(int, input().split()) # N: 맵 크기, X: 활주로 길이 arr = [list(map(int, input().. 2024. 11. 7.
[MySQL] SUBSTR 함수에 대하여 SQL에서 문자열을 다룰 때 특정 부분만 추출해야 하는 경우가 자주 발생합니다. 이때 유용하게 사용할 수 있는 함수가 바로 SUBSTR 함수입니다. 이번 포스팅에서는 SUBSTR 함수의 기본 사용법과 활용 예제를 알아보도록 하겠습니다.SUBSTR 함수의 기본 구조SUBSTR(문자열, 시작 위치, 길이) 문자열: 추출할 문자열을 입력합니다. 예를 들어, 'Hello World'.시작 위치: 문자열에서 추출을 시작할 위치를 정합니다. 1부터 시작합니다.길이 (선택 사항): 추출할 문자 수를 지정합니다. 길이를 지정하지 않으면 시작 위치부터 끝까지 추출합니다.SUBSTR 함수 예제1. 첫 5개의 문자 추출하기SELECT SUBSTR('Hello World', 1, 5) AS 결과;-- 결과: 'Hello'  .. 2024. 11. 5.