전체 글

Data Engineering과 Cloud Native 기술에 대해 Dive Deep 하는 만능 플랫폼 엔지니어가 되는 것을 목표로 하고 있습니다. 경험했던 내용과 공부했던 내용을 기록합니다. 🐻‍❄️☁️
·Algorithm (PS)
https://www.acmicpc.net/problem/17070 17070번: 파이프 옮기기 1 유현이가 새 집으로 이사했다. 새 집의 크기는 N×N의 격자판으로 나타낼 수 있고, 1×1크기의 정사각형 칸으로 나누어져 있다. 각각의 칸은 (r, c)로 나타낼 수 있다. 여기서 r은 행의 번호, c는 열의 www.acmicpc.net 이거 DP로도 풀수있다는데 방법의 수가 1억개 보다는 작으니까 그래프 구현으로 풀었다 n = int(input()) array = [] answer = 0 dp = [[0] * n for _ in range(n)] for i in range(n): array.append(list(map(int, input().split()))) def move(x1, y1, x2, y2,..
1. IP주소 개념 IP 주소란 네트워크 계층에서 사용하는 논리적 주소이다. 네트워크에 접속되어 있는 각 컴퓨터에 고유한 주소를 부여한 것이 IP address 이다. IP 주소 체계의 종류에는 IPv4 와 IPv6가 있다. IPv4는 32bit, IPv6는 128bit의 길이를 가지고 있다. 현재 사용하는 주소 체계는 IPv4이며, IPv4는 8bit 크기의 필드 네개를 사용하여 총 32bit로 구성된다. 2진수로 표현했을 때 00000000.00000000.00000000.00000000 ~ 11111111.11111111.11111111.11111111 이 된다. 이를 10진수로 표현하면 0.0.0.0 ~ 255.255.255.255 가 된다. IP주소는 네트워크 주소 (net id) + 호스트 주..
1. 계층화를 하는 이유 통신 기능의 확장을 쉽게 하기 위해서 프로토콜을 7개의 계층으로 나누었다. 계층구조는 상위 계층이 하위계층에게 서비스를 요청하면 하위 계층은 서비스를 실행하고 그 결과를 상위 계층에게 통보하는 개념이다. 2. OSI (Open System Interconnection) 모델 통신 기능을 7계층으로 분류하여 각 계층마다 프로토콜을 규정한 규격 1계층 - 물리계층 두 시스템 간에 데이터를 전송하기 위해서 링크를 활성화하고 관리하는 전기적, 기계적, 절차적, 기능적 특성을 정의함. 데이터를 전기 신호로, 전기신호를 데이터로 바꾼다. -> 상위 계층에서 전송된 데이터를 물리 매체를 통해 다른 시스템에 전기적 신호로 전송한다. -> 송신측의 물리계층은 데이터 링크 계층에서 0과 1로 구성..
·Algorithm (PS)
https://www.acmicpc.net/problem/20115 20115번: 에너지 드링크 페인은 에너지 드링크를 좋아하는 회사원이다. 에너지 드링크는 카페인, 아르기닌, 타우린, 나이아신 등의 성분이 들어있어 피로 회복에 도움을 주는 에너지 보충 음료수이다. 야근을 마치고 한 www.acmicpc.net 요상하게 요즘 그리디 문제를 많이 푸는 느낌? 문제에서 주어진 수식에 따르면 Xa + (Xb/2) 또는 Xb + (Xa/2) 두가지 선택을 할 수가 있다. 최대값을 구하는 것이므로, 더하는 값에 더 큰수가 오게하고, 2로 나누는 값에 작은 수가 오게 하면 greedy하게 풀 수 있다. # 에너지드링크 n = int(input()) array = list(map(int, input().split()..
·Algorithm (PS)
https://www.acmicpc.net/problem/17615 17615번: 볼 모으기 첫 번째 줄에는 볼의 총 개수 N이 주어진다. (1 ≤ N ≤ 500,000) 다음 줄에는 볼의 색깔을 나타내는 문자 R(빨간색 볼) 또는 B(파란색 볼)가 공백 없이 주어진다. 문자열에는 R 또는 B 중 한 종류만 주 www.acmicpc.net 1) 15% 맞았습니다 달성.. ㅠㅠ import sys input = sys.stdin.readline n = int(input()) array = input() answer = 0 r_move = 0 b_move = 0 r_end = 0 b_end = 0 # 맨 오른쪽의 알파벳 개수 카운트 for i in range(n-1, -1, -1): if array[i] =..
·Algorithm (PS)
https://www.acmicpc.net/problem/17471 17471번: 게리맨더링 선거구를 [1, 4], [2, 3, 5, 6]으로 나누면 각 선거구의 인구는 9, 8이 된다. 인구 차이는 1이고, 이 값보다 더 작은 값으로 선거구를 나눌 수는 없다. www.acmicpc.net 0) 그래프 입력 받기 : 파이썬의 defaultdict이라는 훌륭한 내장 라이브러리가 있는데, 이걸 활용하면 쉽다. 그리고 문제에서 1부터 카운트하므로 -1 처리를 해주어서, 0부터 노드가 시작하게끔 처리해주었다. 이래야 나중에 index값으로 접근하기 용이하므로.. graph = defaultdict(list) for i in range(n): data = list(map(int, input().split())) ..
·Algorithm (PS)
https://www.acmicpc.net/problem/17406 17406번: 배열 돌리기 4 크기가 N×M 크기인 배열 A가 있을때, 배열 A의 값은 각 행에 있는 모든 수의 합 중 최솟값을 의미한다. 배열 A가 아래와 같은 경우 1행의 합은 6, 2행의 합은 4, 3행의 합은 15이다. 따라서, 배열 A의 www.acmicpc.net from itertools import permutations import copy import sys input = sys.stdin.readline n, m, k = map(int, input().split()) array = [] for i in range(n): array.append(list(map(int, input().split()))) # 배열 돌리기 ..
https://www.acmicpc.net/problem/17281 17281번: ⚾ ⚾는 9명으로 이루어진 두 팀이 공격과 수비를 번갈아 하는 게임이다. 하나의 이닝은 공격과 수비로 이루어져 있고, 총 N이닝 동안 게임을 진행해야 한다. 한 이닝에 3아웃이 발생하면 이닝이 종 www.acmicpc.net 1. 선수 조합 : permutations 내장 라이브러리로 모든 경우의 수를 구하고 brute force로 확인한다. 2. 점수계산 : 야구의 규칙이해가 바탕이 되어야 했다.. 그래서 어려웠다 ㅎㅎ ㅜㅜ 안타 -> 타자는 1루, 1루에 있던 선수는 2루, 2루에 있던 선수는 3루, 3루에 있던 선수는 홈으로 score += three 2루타 -> 타자는 2루로 진출, 1루에 있던 선수는 3루, 2루에..
minjiwoo
MJ workspace