분류 전체보기 1184

[백준] 1018 - 체스판 다시 칠하기

문제문제 : https://www.acmicpc.net/problem/1018지민이는 단위 정사각형으로 나누어져 있는 M X N 크기의 보드를 찾았다. 보드 내 정사각형은 검은색 또는 흰색으로 칠해져 있는데, 지민이는 보드를 잘라서 8 X 8 크기의 체스판을 만들고자 한다.체스판은 검은색과 흰색이 번갈아가면서 칠해져 있어야 하고, 변을 공유하는 두 개의 사각형은 다른 색으로 칠해져 있어야 한다. 보드가 체스판처럼 칠해져 있다는 보장이 없어서 지민이는 보드를 잘라낸 후 몇 개의 정사각형을 다시 칠하려고 한다. 지민이가 다시 칠해야 하는 정사각형의 최소 개수를 구하여라.  풀이좋은 방법이 없을지 좀 오래 고민을 해보았는데, 입력 크기도 작아서 그냥 완전 탐색하는 방식으로 진행했다. 1. 체스판 초기화체스판은..

Algorithm/백준 2024.06.20

[백준] 1260 - DFS와 BFS

문제문제 : https://www.acmicpc.net/problem/1260그래프를 DFS로 탐색한 결과와 BFS로 탐색한 결과를 출력하는 프로그램을 작성하라. 단, 방문할 수 있는 정점이 여럿인 경우에는 정점 번호가 작은 것부터 방문한다.첫째 줄에 정점의 개수 N, 간선의 개수 M, 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선을 연결하는 두 정점의 번호가 주어진다. 입력으로 주어지는 간선은 양방향이다.  접근2024.05.08-[알고리즘] 너비 우선 탐색(BFS) 이란, 2024.05.12-[알고리즘] 깊이 우선 탐색(DFS) 이란에서 살펴본 대로 구현하면 된다.   구현1. 입력값 초기화import sysN, M, V = map(int, sys.stdin.readline()...

Algorithm/백준 2024.06.19

[백준] 2108 - 통계학

문제문제 : https://www.acmicpc.net/problem/2108통계학에서 N개 수를 대표하는 기본 통계값에는 다음과 같은 것들이 있다.산술평균 : N개의 수의 합을 N으로 나눈 것중앙값 : N개의 수를 오름차순으로 나열했을 때 그 중앙에 위치하는 값최빈값 : N개의 수 중 가장 많이 나타나는 값범위 : N개의 수중 최댓값과 최솟값의 차이첫째 줄에 수의 개수 N을 입력받고, 다음 N개 줄에 걸쳐 정수를 입력받을 때 네 가지 기본 통계값을 구하여라.   접근통계 등의 데이터를 처리할 때는 numpy를 곧잘 사용하는데, 이번 글에서는 numpy 사용 없이 풀이해보려고 한다. 먼저 입력 데이터는 다음과 같이 선언했다.import sysN = int(sys.stdin.readline())list_n..

Algorithm/백준 2024.06.18

[Python] round 함수가 .5를 처리하는 방식

개요Python의 round 함수는 소수를 지정한 자릿수에 맞춰 반올림하는 함수이다. 반올림하는 자리의 수가 5보다 적으면 버리고, 5보다 크면 올린다. 그러나 실제로 몇 가지 예시로 round 함수를 수행하면 기대한 결과와 다른 결과가 나온다.왜 이러한 결과가 나오는지 적어둔다.  Bankers' Rounding이번에 처음 알게 되었는데 반올림을 하는 방법은 여러가지가 존재한다. 그중 하나인 산술 반올림은 반올림하는 자리의 수가 5보다 적으면 버리고, 5보다 크면 올리는, 일반적으로 알고 있는 반올림 방식을 말한다. 다만 산술 반올림은 대상이 되는 숫자가 5 이상이면 올리기 때문에, 내리는 경우보다 올리는 경우가 더 많다. 산순 반올림은 단순 계산에서는 큰 차이가 없지만 돈과 관련된 예민한 계산에서는 ..

Python 2024.06.17

[백준] 1966 - 프린터 큐

문제문제 : https://www.acmicpc.net/problem/1966일반적으로 프린터 기기는 인쇄 명령을 받은 순서대로 문서를 인쇄한다. 그런데 최근 상근은 다음과 같이 동작하는 새 프린터 소프트웨어를 개발했다.1. 프린터 큐 내 맨 앞에 있는 문서의 중요도를 확인한다.2. 나머지 문서 중 현재 문서보다 높은 중요도의 문서가 있으면, 이 문서는 인쇄하지 않고 큐의 맨 뒤로 재배치한다. 그렇지 않으면 현재 문서를 인쇄한다.프린터 소프트웨어를 사용하여 프린터 큐에 있는 문서의 수와 중요도가 주어졌을 때, 임의 문서가 몇 번째에 인쇄되는지 반환하는 프로그램을 작성하라. 첫줄에는 테스트 케이스의 수가 주어지고, 각 테스트케이스는 두 줄로 이루어져 있다.테스트케이스의 첫번째 줄에는 문서의 개수 n과 인쇄..

Algorithm/백준 2024.06.14

[Python] youtube-transcript-api - 동영상 자막 내용 가져오기

개요회사 스터디에서 Youtube를 주제로 사이드 프로젝트를 진행하려고 한다. 관련하여 Youtube에 업로드되어 있는 영상 정보, 예로 들어 제목, 좋아요 수, 싫어요 수, 디스크립션, 자막 등의 정보를 API 등을 통해서 받아오려고 한다. 참고 : 2024.05.27-[YouTube] API로 Youtube 동영상 정보 요청하기 다만, Youtube Data API Videos 공식 문서를 확인해 보면 자막과 같은 스크립트 정보는 응답에 포함되어 있지 않은 것 같다. API나 다른 방식으로 정보를 받아올 방법을 찾다가 해당 기능을 지원해 주는 Python 라이브러리가 있는 것을 확인했다.마침 사용할 언어도 Python이므로, 사용 방법을 적어둔다.  youtube-transcript-apiURL : ..

Python 2024.06.13

[YouTube] API로 Youtube 동영상 정보 요청하기

개요API를 통해 Youtube에 업로드된 비디오나 채널의 정보를 얻으려고 한다.Youtube API 사용 방법에 대해 적어둔다.  프로젝트 생성Youtube 관련 API를 사용하기 위해서는 GCP 프로젝트를 사용해야 한다. 1. GCP 접근 https://console.cloud.google.com/ 로 이동한다. 2. 새 프로젝트 생성 페이지로 이동 상단 메뉴에서 프로젝트 선택 드롭다운을 선택한다.프로젝트 선택 팝업창의 오른쪽 상단의 새 프로젝트를 클릭한다. 3. 프로젝트 생성프로젝트 이름 등을 지정하고 만들기 버튼을 클릭한다. 이상이 없으면 잠깐 대기한 뒤 생성된 프로젝트를 확인할 수 있다.  Youtube API 활성화 1.  API 및 서비스 접근프로젝트의 대시보드에서 바로 접근할 수 있다. 2..

기타 2024.06.12

[K8s] 네트워크 유형 - 외부와 Service 간 통신

개요2024.05.22-[K8s] 네트워크 유형 - Pod와 Service 간 통신에서는 Service의 개념과 동작 방식에 대해서 알아보았다. 다만 Service는 기본적으로 ClusterIP 유형으로 생성되어 클러스터 내부에서만 통신이 가능하도록 되어있다. 그렇다면 외부와 통신을 주고받아야 할 때는 어떻게 해야 할까? 쿠버네티스에서는 NodePort 유형의 Service, Load Balancer 유형의 Service 그리고 Ingress를 통해 외부와의 통신을 가능하게 한다.각각에 대해서 정리해 둔다.   NodePortNodePort 유형의 Service는 기본적으로 Cluster IP 유형과 비슷하지만, Node 네트워크의 IP를 통한 접근을 허용하는 등의 몇 가지 기능을 더 갖고 있다. 즉, ..

Kubernetes 2024.06.11

[K8s] 네트워크 유형 - Pod와 Service 간 통신

개요2024.05.18-[K8s] 네트워크 유형 - 컨테이너 간 통신, 2024.05.19-[K8s] 네트워크 유형 - Pod 간 통신에서 쿠버네티스의 4가지 통신 유형 중 2가지 유형을 살펴보았다. 이번 글에서는 Service의 개념과 Pod과 Service 간 통신에 대해 적어두려고 한다.  ServicePod는 각각의 고유한 주소를 가지기 때문에 어떤 애플리케이션의 엔드포인트로 설정할 수도 있다. 하지만 쿠버네티스에서 Pod는 쉽게 대체되기 때문에 새로 생성된 Pod의 주소가 기존 Pod와 동일함을 보장하지 않는다.이러한 문제를 해결하기 위해 애플리케이션 앞에 서버의 목록을 관리하며 서비스 중인 서버에게 트래픽을 전달하는 reverse-proxy나 load balancer를 구성할 수 있다. 이러한..

Kubernetes 2024.06.10

[K8s] 네트워크 유형 - Pod 간 통신

개요2024.05.18-[K8s] 네트워크 유형 - 컨테이너 간 통신에서는 도커, 쿠버네티스 환경에서의 컨테이너 간 통신에 대해서 정리했다.이번 글에서는 Pod 간 통신에 대한 내용을 적어두려고 한다. Pod 간 통신은 단일 노드에서의 통신 그리고 멀티 노드에서의 통신으로 구분할 수 있다.  단일 노드에서의 Pod쿠버네티스의 Pod는 고유한 IP 주소(veth)를 가지므로, IP 주소로 서로 통신할 수 있다.쿠버네티스는 kubenet이라는 기본적이고 간단한 네트워크 플러그인을 제공한다. 다만 kubenet에는 노드 간 네트워킹, 네트워크 정책 설정과 같은 고급 기능은 구현되어 있지 않기 때문에 Calico, Flannel 등과 같은 CNI 기반 네트워크 플러그인 사용을 권장하고 있다. 일례로 kudead..

Kubernetes 2024.06.07