danbibibi
article thumbnail
BOJ 20040번: 사이클 게임
문제 풀이/백준 2024. 3. 24. 20:51

문제 문제 바로가기> BOJ 20040번: 사이클 게임 20040번: 사이클 게임 사이클 게임은 두 명의 플레이어가 차례대로 돌아가며 진행하는 게임으로, 선 플레이어가 홀수 번째 차례를, 후 플레이어가 짝수 번째 차례를 진행한다. 게임 시작 시 0 부터 n − 1 까지 고유한 www.acmicpc.net 풀이 union-find를 이용하여 cycle을 찾아주었다. #include #define MAX 500005 using namespace std; int N, M; int par[MAX]; int find_(int x){ if(par[x] == x) return x; return par[x] = find_(par[x]); } int union_(int y, int x){ int py = find_(y)..

article thumbnail
[Docker] Docker rootless 설치
DevOps 2024. 3. 21. 11:19

리눅스에서 패키지 설치 권한도 없을 때 실행하기 위해 다음과 같이 docker를 rootless로 설치할 수 있다. $ curl -fsSL https://get.docker.com/rootless | sh # (설치 후) 화면에 나온 EXPORT 명령어 2개 입력 (복붙) $ systemctl --user start docker

article thumbnail
BOJ 3020번: 개똥벌레
문제 풀이/백준 2024. 3. 20. 23:37

문제 문제 바로가기> BOJ 3020번: 개똥벌레 3020번: 개똥벌레 개똥벌레 한 마리가 장애물(석순과 종유석)로 가득찬 동굴에 들어갔다. 동굴의 길이는 N미터이고, 높이는 H미터이다. (N은 짝수) 첫 번째 장애물은 항상 석순이고, 그 다음에는 종유석과 석순이 www.acmicpc.net 풀이 각각의 높이(h)로 날 때, 파괴하게 되는 장애물 수를 이분탐색을 이용해서 구해주었다. 석순, 종유석으로 나눠 하면서 이상한 부분에서 너무 헷갈렸다 ................ #include #include #include using namespace std; int N, H; vector up, down; // 석순, 종유석 void input(){ cin >> N >> H; for (int i = 0; ..

article thumbnail
나를 웃게 했던 그 이름을 여기에 새기러
Daily/음악 2024. 3. 20. 20:49

오늘 밤 이곳에 그려진 이 계절은 뜨거운 여름이 되었다 사랑을 외치던 그때가 온 것처럼 모두가 이 노래를 외쳤다 그때의 우리가 흘렸던 눈물만큼 우리의 미소가 흘렀다 너희가 있어서 이 겨울도 아름다울 거야 난 지금 네게 가고 있는 길이야 봄의 끝보다 훨씬 빠르게 아직도 네게 가고 있는 길이야 여름밤 공기보다 뜨겁게 내 어린 시절 우연히 들었던 믿지 못할 한마디 이 세상을 다 준다는 매혹적인 얘기 내게 꿈을 심어 주었어 말 도 안돼 고갤 저어도 내 안의 나 나를 보고 속삭여 세상은 꿈꾸는 자의 것이라고 용기를 내 넌 할 수 있어 그냥 이대로 이끌리듯 날 놓아주면 난 괜찮을까 지금 내 앞에 흔들리듯 안길 것 같은 또 다른 내일 Oh 머리부터 발끝까지 다 사랑스러워 Oh 니가 나의 여자라는 게 자랑스러워 무뚝뚝..

article thumbnail
[Jenkins] Agent Node 추가
DevOps 2024. 3. 20. 15:58

Jenkins Agent Node Master - Slave 구조 관리는 Master 노드에서, 빌드는 Agent 노드에서 진행 Jenkins Agent 설치 파일을 배포하여 Master 노드에 대한 1:1 연결 Jenkins Agent Node 생성 1. Jenkins 관리 > Nodes 2. New node를 클릭하여 새로운 agent 생성 Name : Agent로 사용할 node의 이름 Number of executors : Agent node의 동시 job 실행 개수 Remote root directory : agent를 설치할 jar 파일이 위치해야 할 곳 Launch method : Agent로 사용할 곳의 접속정보 (JAVA / SSH 등 방법 존재) Jenkins Agent Node 실행 ..

article thumbnail
[Linux] 권한 설정 정리 (chown, chmod, chgrp)
프로그래밍/Linux 2024. 3. 20. 13:36

chown change + owner 파일의 소유권과 그룹을 변경하는 명령어 # chown [OPTION] [OWNER][:[GROUP]] [FILE] # 소유주 변경 (modul dir 안의 파일들의 소유권을 모두 user1에게 줌) $ chown -R user1 module # 소유주와 그룹 변경 $ chown -R users:user1 module chown 명령어 옵션 옵션 설명 -c (--changes) 기존에 지정된 모드에서 변경되는 경우에만 출력 -f (--slient, --quiet) 오류 메세지를 출력하지 않음 -v (--verbose) 처리된 모든 파일 및 디렉토리에 대한 메세지를 출력 -h (--no-dereference) 심볼릭링크 파일이 변경됨 -R (--recursive) 지정한..

article thumbnail
BOJ 16947번: 서울 지하철 2호선
문제 풀이/백준 2024. 3. 7. 23:08

문제 문제 바로가기> BOJ 16947번: 서울 지하철 2호선 16947번: 서울 지하철 2호선 첫째 줄에 역의 개수 N(3 ≤ N ≤ 3,000)이 주어진다. 둘째 줄부터 N개의 줄에는 역과 역을 연결하는 구간의 정보가 주어진다. 같은 구간이 여러 번 주어지는 경우는 없고, 역은 1번부터 N번까지 번호 www.acmicpc.net 풀이 1. dfs를 이용해 cycle을 구해준다. 이전 노드가 아닌, 다른 노드에서 방문한 노드를 재방문 하는 경우, cycle이라고 볼 수 있다! 2. bfs를 이용해 역과 순환선 사이의 거리를 구해준다! #include #include #include #include #define MAX 3005 using namespace std; struct QUEUE{ int n, ..

article thumbnail
[Jenkins] Mac 젠킨스 설치 방법

Jenkins 설치 Download > (LTS) > macOS 선택 (하면 아래와 같이 설치 방법이 나온다!) $ brew install jenkins-lts $ brew services start jenkins-lts $ brew services restart jenkins-lts $ brew upgrade jenkins-lts macOS Installers for Jenkins LTS Jenkins – an open source automation server which enables developers around the world to reliably build, test, and deploy their software www.jenkins.io Jenkins 실행 설치 완료 후 다음 명령어를 ..

article thumbnail
[Jenkins] Jenkins 정리
DevOps 2024. 2. 29. 00:25

Jenkins CI/CD를 위한 오픈 소스 도구로, 소프트웨어 개발 생명주기를 자동화함 빌드, 테스트, 배포 프로세스를 자동화하여 소프트웨어 품질과 개발 생산성을 높일 수 있음 다양한 플러그인을 지원하여 사용자가 필요에 맞게 플러그인을 통합하여 CI/CD 환경을 확장할 수 있음 다양한 플러그인을 사용하여 파이프라인을 구성하면 구성이 복잡해질 수 있고, 이에 따른 버전 호환성 및 보안 사항 등을 고려해야 하기 때문에 유지 보수에 어려움을 겪을 수 있음. 따라서 환경에 필요한 플러그인을 잘 선택하여 사용하는 것이 중요함. Jenkins는 Java Runtime Environment에서 동작 한다! Jenkins 동작 구조 Master/Slave 구조로 동작 Master는 controller라고 불리며, 작업..

article thumbnail
[Docker] Docker 정리
DevOps 2024. 2. 28. 20:14

Docker 컨테이너 기반의 오픈소스 가상화 플랫폼 다양한 프로그램, 실행환경을 컨테이너로 추상화하고, 동일한 인터페이스를 제공하여 프로그램의 배포 및 관리를 더 간결하게 할 수 있음 기존의 OS 전체를 가상화하던 방식에서 벗어남으로써 overhead를 줄일 수 있음 Docker Image Docker Image는 컨테이너 생성(실행)에 필요한 실행파일, 설정 값 들을 가지고 있음 하나의 이미지로 여러 컨테이너를 생성할 수 있으며 컨테이너가 삭제되더라도 이미지는 변하지 않고 그대로 남아 있음 이미지는 상태 값을 가지지 않고 변하지 않음 // docker build -t [생성할_이미지_이름] [재료_폴더_경로] $ docker build -t ubuntu:18.04 . Docker Container Do..

article thumbnail
CI/CD(지속적 통합/배포) 정리
DevOps 2024. 2. 28. 13:24

CI/CD 코드를 빌드, 테스트, 배포하는 과정을 거쳐 소프트웨어 개발을 추진하는 프로세스 애플리케이션 개발부터 배포까지 모든 단계를 자동화하여 좀 더 효율적이고 빠르게 사용자에게 빈번히 배포할 수 있는 것 개발자가 code를 메인 리포지토리에 merge 하면, 자동으로 빌드 되고, 자동으로 테스트 되고, 릴리즈 되고(배포준비완료), 배포되는 것이라고 할 수 있음 DevOps 엔지니어 - CI/CD를 위한 파이프라인을 구성하고, 자동화 - 중간중간 모니터링 지표를 구성하여, 개발자들의 개발 방향을 가이드 Continuous Integration (지속적 통합) 빌드/테스트 자동화 어플리케이션의 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트 되어 공유 레포지토리에 통합되는 것 여러 명의 개발자가 동시..

article thumbnail
BOJ 5719번: 거의 최단 경로
문제 풀이/백준 2024. 2. 21. 22:16

문제문제 바로가기> BOJ 5719번: 거의 최단 경로 5719번: 거의 최단 경로입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 장소의 수 N (2 ≤ N ≤ 500)과 도로의 수 M (1 ≤ M ≤ 104)가 주어진다. 장소는 0부터 N-1번까지 번호가 매겨져 있www.acmicpc.net 풀이다익스트라를 돌리고, 역방향 그래프를 만들어서 bfs 탐색을 진행하면, 해당 경로가 최단 경로인지 판별이 가능하다.예를 들어 a -> b 인 경우, 역 방향 그래프에서 a까지의 최단 경로 + a에서 b로이어지는 간선 = b까지의 최단 경로라면, 해당 간선은 최단 경로에 포함된다.이를 이용하여 최단 경로를 INF 로 변경 (사실상 제거) 해주었고, 최단 경로가 제거된 상태에서 다..

article thumbnail
BOJ 12851번: 숨바꼭질 2
문제 풀이/백준 2024. 2. 21. 22:12

문제 문제 바로가기> BOJ 12851번: 숨바꼭질 2 12851번: 숨바꼭질 2 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 www.acmicpc.net 풀이 동생을 찾는 가장 빠른 시간이므로 bfs를 이용하였고, 가중치가 같지 않은 경우(걸음과 순간이동은 시간 당 이동할 수 있는 칸 수가 다름)에 속하므로 더 빠르게 찾을 수 있는 경우 큐에 다시 한번 넣어 주었다. #include #include #define MAX 100001 using namespace std; int N, K; int cost[MAX]; void ..

article thumbnail
CMake, CMakeLists.txt 정리
언어/C, C++ 2024. 2. 19. 10:42

CMake빌드 파일을 생성해주는 프로그램  ( = Makefile, .ninja를 자동으로 생성해주는 프로그램)Makefile은 간단한 프로젝트를 관리하기 좋지만, 프로젝트 크기가 커지거나 여러 플랫폼에서 배포할 때 불편한 점이 많음CMake를 사용 시 프로젝트 최상위 디렉토리에 CMakeLists.txt 파일이 있어야 함해당 파일에는 반드시 "CMake 프로그램의 최소 버전" 과 "프로젝트 정보"가 포함되어야 함주석은 '#' 으로 작성 #기본 템플릿# CMake 프로그램의 최소 버전cmake_minimum_required(VERSION 3.11)# 프로젝트 정보project( ModooCode VERSION 0.1 DESCRIPTION "예제 프로젝트" LANGUAGES CXX)# 라이브러리 파..

article thumbnail
BOJ 1938번: 통나무 옮기기
문제 풀이/백준 2024. 2. 18. 18:01

문제 문제 바로가기> BOJ 1938번: 통나무 옮기기 1938번: 통나무 옮기기 첫째 줄에 주어진 평지의 한 변의 길이 N이 주어진다. (4 ≤ N ≤ 50) 주어진다. 이어서 그 지형의 정보가 0, 1, B, E로 이루어진 문자열로 주어진다. 한 줄에 입력되는 문자열의 길이는 N이며 입력 문 www.acmicpc.net 풀이 최소 동작 횟수를 구하는 것이기 때문에 bfs를 이용했다. 또한 한 지점에서 통나무의 모양이 ㅡ(가로) 또는 ㅣ(세로) 일 수 있기 때문에 visited 배열을 3차원으로 선언해주었다! 코드가 지저분해서,, 언제 한번 다시 깔끔하게 짜보아야겠다 ,, #include #include #define MAX 55 #define SIZE 3 using namespace std; stru..