Python15 [Algorithm] BAEKJOON 2211번. 네트워크 복구 [ 백준 2211번. 네트워크 복구 ] 문제명 : 네트워크 복구 사용언어 : python 알고리즘 : Dijkstra(다익스트라) 알고리즘, 최단경로 문제 N(1 ≤ N ≤ 1,000)개의 컴퓨터로 구성된 네트워크가 있다. 이들 중 몇 개의 컴퓨터들은 서로 네트워크 연결이 되어 있어 서로 다른 두 컴퓨터 간 통신이 가능하도록 되어 있다. 통신을 할 때에는 서로 직접 연결되어 있는 회선을 이용할 수도 있으며, 회선과 다른 컴퓨터를 거쳐서 통신을 할 수도 있다. 각 컴퓨터들과 회선은 그 성능이 차이가 날 수 있다. 따라서 각각의 직접 연결되어 있는 회선을 이용해서 통신을 하는데 걸리는 시간이 서로 다를 수 있다. 심지어는 직접 연결되어 있는 회선이 오히려 더 느려서, 다른 컴퓨터를 통해서 통신을 하는 것이 .. Algorithm 2024. 2. 20. [Algorithm] Softeer [21년 재직자 대회 예선] 회의실 예약 (python) [ Softeer 연습문제 - 회의실 예약 ] Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai 문제명 : 회의실 예약[21년 재직자 대회 예선] 사용언어 : python 문제 회사에는 N개의 회의실이 있다. 수많은 팀이 모여 토론하고 업무를 처리하기 위해서는 회의실이 필수적이다. 내부망에 아주 간단한 회의실 예약 시스템이 있지만 편의성이 매우 떨어진다. 단순히 예약된 회의의 목록만 표시되기 때문에, 방 별로 비어 있는 시간이 언제인지를 확인하기가 힘든 것이다. 당신은 이를 직접 해결해 보기로 마음 먹었다. 회의실 이용 규칙은 다음과 같다: - 회의실은 9시부터 18시까지만 사용 가능하다. 모든 회의의 시간은 이 안에 완전히 포함되어야 한다. - 회의는 정확히 한 회의실을 연속한 일정.. Algorithm 2024. 2. 2. [Algorithm] Softeer [21년 재직자 대회 예선] 좌석관리 (python) [ Softeer 연습문제 - 좌석관리 ] Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai 문제명 : 좌석관리 [21년 재직자 대회 예선] 사용언어 : python 문제 현대자동차그룹에서 사내 식당 매니저로 일하는 기항이는 점심시간에 맞춰 일을 하고 있다. 오늘 일은 사람들이 사회적 거리 두기를 잘 지키면서 식당 좌석에 앉도록 상황을 관리하는 일이다. 현재 식당에는 좌석 N×M개가 N행 M열로 나열되어 있는데, 각 좌석에는 (1,1)에서 (N,M)로 좌표가 배정되어 있다. x행 y열에 있는 좌석의 좌표는 (x, y)이다. 점심시간에는 많은 사람들이 식당을 드나든다. 사번이 id인 어떤 사원이 식당에 왔다면, 다음 조건에 맞춰 이 사원을 위한 좌석을 배정해 준다. 현재 K개의 좌석이 .. Algorithm 2024. 2. 1. [Python] 번호판 인식 데이터셋 생산하기 (가상 차량 번호판 생성) 번호판 인식이 필요한 프로젝트를 진행 중 모델을 훈련하기 위해서는 대량의 번호판 데이터가 필요했다. 그러나 자동차 번호판은 개인정보에 해당하고, 현실적으로 실제 데이터를 구하는 것이 어려웠다. 그래서 가상의 차량 번호판 이미지를 활용해야 했다. 가상의 데이터를 사용함으로써 개인정보 보호 문제를 회피하고 효과적으로 모델을 훈련해 보자!! 1. 사용 라이브러리 설치 및 글꼴, 이미지 다운로드 ▽ 사용 라이브러리 # tqdm pip install tqdm # 진행상황 시각화 용도 # PIL pip install pillow # 번호판 이미지 처리 용도 #argparse pip install argparse # 이미지 경로,갯수,설정 용도 ▽ 사용 글꼴, 이미지(자동차 번호판 테두리 이미지) 한길체 폰트 Not.. BE/Python 2024. 1. 29. [Algorithm] Softeer 장애물 인식 프로그램 (Python) [ Softeer 연습문제 - 장애물 인식 프로그램 ] Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai 문제명 : 장애물 인식 프로그램 사용언어 : Python 알고리즘 : DFS/BFS -> 필자는 BFS 사용으로 풀이. 문제 알고리즘 및 풀이 이 문제는 이진 행렬에서 그룹의 개수와 각 그룹의 크기를 찾는 문제이다. 필자는 BFS(너비 우선 탐색) 알고리즘을 활용했다. 큐를 활용하여 한 정점에서 시작하여 인접한 정점을 탐색하는 방법으로 접근하였다. (x, y) 좌표를 순회하면서 "1"인 곳을 발견하면 해당 좌표에서 BFS를 시작하고 발견된 좌표는 방문 처리를 위해 "0"으로 바꿔준다. 이는 그룹의 크기를 측정하는 중복 방문을 방지한다. - 전역 변수 활용 : 'cnt' 변수는 그룹.. Algorithm 2024. 1. 24. [Algorithm] Softeer 조립라인 - Lv.3 (Python) [ Softeer 연습문제 - 조립라인 ] Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai 문제명 : 조립라인 (Level.3) 사용언어 : Python 사용 알고리즘 : DP (Dynamic Programming) 문제 동일한 자동차를 생산하는 2개의 조립 라인 A와 B가 있다. 두 조립라인에는 각각 N개의 작업장이 있다. 각각의 작업장을 Ai (1 ≤ i ≤ N)와 Bi (1 ≤ i ≤ N)로 표시하자. Ai 작업장과 Bi 작업장은 동일한 작업을 수행하지만 작업시간은 다를 수 있다. A 조립 라인의 경우 A1 작업장에서 최초 조립이 시작되고, Ai 작업장에서 작업이 종료되면 바로 Ai+1 작업장에서 작업을 시작할 수 있다. B 조립 라인도 동일한 방식으로 조립을 진행한다. Ai .. Algorithm 2024. 1. 23. [Algorithm] Softeer 금고털이 - Lv.2 (Python) [ Softeer 연습문제 - 금고털이 ] Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai 문제명 : 금고털이 사용언어 : Python 사용 알고리즘 : 그리디 알고리즘 문제 설명 루팡은 배낭을 하나 메고 은행금고에 들어왔다. 금고 안에는 값비싼 금, 은, 백금 등의 귀금속 덩어리가 잔뜩 들어있다. 배낭은 W ㎏까지 담을 수 있다. 각 금속의 무게와 무게당 가격이 주어졌을 때 배낭을 채울 수 있는 가장 값비싼 가격은 얼마인가? 루팡은 전동톱을 가지고 있으며 귀금속은 톱으로 자르면 잘려진 부분의 무게만큼 가치를 가진다. ▼ 실행 코드 ▼ import sys input = sys.stdin.readline W, N = map(int, input().split()) jewelry = [l.. Algorithm 2024. 1. 19. [Algorithm] BAEKJOON 2504번. 괄호의 값 (Python) [ 백준 2504번. 괄호의 값 ] 문제명 : 괄호의 값 사용 언어 : Python3 주요 알고리즘 : stack(스택) 문제 4개의 기호 ‘(’, ‘)’, ‘[’, ‘]’를 이용해서 만들어지는 괄호열 중에서 올바른 괄호열이란 다음과 같이 정의된다. 한 쌍의 괄호로만 이루어진 ‘()’와 ‘[]’는 올바른 괄호열이다. 만일 X가 올바른 괄호열이면 ‘(X)’이나 ‘[X]’도 모두 올바른 괄호열이 된다. X와 Y 모두 올바른 괄호열이라면 이들을 결합한 XY도 올바른 괄호열이 된다. 예를 들어 ‘(()[[]])’나 ‘(())[][]’ 는 올바른 괄호열이지만 ‘([)]’ 나 ‘(()()[]’ 은 모두 올바른 괄호열이 아니다. 우리는 어떤 올바른 괄호열 X에 대하여 그 괄호열의 값(괄호값)을 아래와 같이 정의하고 .. Algorithm 2024. 1. 17. [자료구조] 이진 탐색 트리(BST, Binary Search Tree) 이진 탐색 트리 (binary search tree) ※ 이진 탐색 트리 삽입 구현 :: insert class Node: """이진 탐색 트리 노드 클래스""" def __init__(self, data): self.data = data self.parent = None self.right_child = None self.left_child = None def print_inorder(node): """주어진 노드를 in-order로 출력해주는 함수""" if node is not None: print_inorder(node.left_child) print(node.data) print_inorder(node.right_child) class BinarySearchTree: """이진 탐색 트리 클래스.. Algorithm 2023. 12. 29. [Python] 데이터 시각화 - Matplotlib 그래프 그리기 [ Matplotlib 사용하여 그래프 그리기 ] 머신러닝에서 모델을 구현하는 것도 중요하지만, 학습할 데이터를 선별하고 만들어진 모델을 검증하기 위해서는 데이터를 이해하는 것이 필수적이고 이를 위해서는 데이터를 시각화해서 보는 것이 매우 중요하다고 한다. Python에서 가장 널리 사용되는 데이터 시각화 라이브러리 Matplotlib로 데이터 시각화를 해보았다 ! ◈ Matplotlib ? : Python 프로그래밍 언어 및 수학적 확장 Numpy 라이브러리를 활용한 플로팅 라이브러리 : 그래프, 차트, 플롯 등 다양한 시각화 요소를 생성하고 데이터를 시각적으로 나타낼 수 있다. %matplotlib inline # Jupyter Notebook 사용시 추가해줘야 됨. import matplotlib .. BE/Python 2023. 11. 17. [Python] Numpy 유용한 함수 (통계 함수) 2023.11.14 - [Programing/Python] - [Python] Numpy란? numpy array 생성하기 [Python] Numpy란? numpy array 생성하기 ▷ Numpy (Numerical Python) 란? import numpy as np : 다차원 배열(행렬)을 쉽게 처리하고 효율적으로 사용할 수 있도록 지원하는 파이썬의 라이브러리. : 수치해석, 통계 관련 기능을 구현할 때 가장 기본이 kongda.tistory.com Numpy를 좀 더 유용하게 사용하기 위한 함수들을 정리. ▼ Numpy로 행렬을 다루기 위한 차원의 확장과 축소의 함수를 알아보자 ! ▷ 차원 확장 : 배열의 차원을 확장. expand_dims(arr, axis) arr : 차원을 확장할 배열 axi.. BE/Python 2023. 11. 16. [Python] Numpy란? numpy array 생성하기 ▷ Numpy (Numerical Python) 란? import numpy as np : 다차원 배열(행렬)을 쉽게 처리하고 효율적으로 사용할 수 있도록 지원하는 파이썬의 라이브러리. : 수치해석, 통계 관련 기능을 구현할 때 가장 기본이 되는 모듈. : Ndarray 타입의 배열을 만들 수 있음. ( ※ Ndarray 타입 : N-dimension array의 약자. 다차원 배열을 의미.) [ List 와 Ndarray 차이점 ] 1. 선언 형태의 차이 - List : 원소로 여러 가지 자료형을 허용. 내부 배열의 원소 개수가 달라도 된다. - Ndarray : 원소로 한 가지 자료형만 허용. 내부 배열의 원소 개수가 같아야 한다. # a List는 여러 가지 자료형을 허용, b Ndarray는 한 .. BE/Python 2023. 11. 14. 이전 1 2 다음 728x90