danbibibi
article thumbnail
[Linux] 파일 이름, 내용 일괄변경
프로그래밍/Linux 2024. 4. 3. 10:01

# 현재 디렉토리 내의 모든 파일, 디렉토리의 이름중 A가 포함된 파일, 디렉토리의 이름의 A를 B로 변경 $ find ./ -name "*A*" | sed -e 'p' -e "s/A/B/g" |xargs -n 2 mv # 현재 디렉토리 내의 모든 파일들의 내용중 A를 B로 변경 $ find ./ -type f | xargs sed -i 's/A/B/g'

article thumbnail
[Linux] grep 정리
프로그래밍/Linux 2024. 3. 27. 16:50

grep 입력으로 전달된 파일의 내용에서 특정 문자열을 찾고자할 때 사용하는 명령어 단순 문자열 매칭뿐만 아니라 정규 표현식(Regular Expression)에 의한 패턴 매칭(Pattern Matching) 방식도 사용 가능 정규표현식 메타 문자 (Meta Character) 설명 . 정확히 1개의 문자와 매치 * 앞 문자가 0회 이상 매치 {n} 앞 문자가 정확히 n회 매치 {n,m} 앞 문자가 n회 이상 m회 이하 매치 [ ] 대괄호에 포함된 문자 중 한개와 매치 [^ ] 대괄호 안에서 ^뒤에 있는 문자들을 제외 [ - ] 대괄호 안 문자 범위에 있는 문자들 매치 () 표현식을 그룹화 ^ 문자열 라인의 처음 $ 문자열 라인의 마지막 ? 앞 문자가 0 또는 1회 매치 (확장 정규 표현식) + 앞 문..

article thumbnail
BOJ 9466번: 텀 프로젝트
문제 풀이/백준 2024. 3. 26. 20:58

문제 문제 바로가기> BOJ 9466번: 텀 프로젝트 9466번: 텀 프로젝트 이번 가을학기에 '문제 해결' 강의를 신청한 학생들은 텀 프로젝트를 수행해야 한다. 프로젝트 팀원 수에는 제한이 없다. 심지어 모든 학생들이 동일한 팀의 팀원인 경우와 같이 한 팀만 있을 www.acmicpc.net 풀이 dfs 를 이용하여 팀을 이루는 학생들을 구하고, 이를 전체 학생 수에서 빼주는 방식으로 문제를 풀었다. N이 최대 100,000이므로, 방문했던 cycle을 재방문하는 것을 피해야한다. 이를 위해 방문을 시작하고 중간에 cycle이 이루어졌더라도 해당 cycle을 구해주기 위해 cnt 배열을 이용해주었다. #include #include #define MAX 100005 using namespace std;..

article thumbnail
[Linux] sed(Stream Editor) 정리
프로그래밍/Linux 2024. 3. 26. 09:46

sed(Stream Editor) vi 편집기처럼 원하는 내용 추출, 문자열 치환 등 다양한 작업을 수행할 수 있음 1개의 라인씩 입력 라인을 읽어들여 표준출력으로 출력함 홀드 버퍼(데이터의 원본을 가지고 있는 곳), 패턴 버퍼(조건에 따라 가공된 데이터 저장) 두가지 버퍼를 가지고 있음 ed vs sed - sed의 경우 라인들을 하나씩 읽고, 수정하고, 출력하기 때문에 기억장치 안의 버퍼를 사용하지 않음 - 버퍼를 사용하지 않으면 파일의 크기에 제한 없이 작업을 할 수 있음 - ed와 같이 버퍼를 사용하는 경우는 버퍼의 크기보다 큰 파일은 처리할 수 없으며 대개 버퍼의 크기는 1MB - 따라서 sed는 아주 큰 파일을 처리할 때 주로 사용됨 사용법 # 특정 패턴을 적용하여 데이터 추출 sed [패턴]..

article thumbnail
BOJ 2617번: 구슬 찾기
문제 풀이/백준 2024. 3. 25. 21:46

문제 문제 바로가기> BOJ 2617번: 구슬 찾기 2617번: 구슬 찾기 모양은 같으나, 무게가 모두 다른 N개의 구슬이 있다. N은 홀수이며, 구슬에는 번호가 1,2,...,N으로 붙어 있다. 이 구슬 중에서 무게가 전체의 중간인 (무게 순서로 (N+1)/2번째) 구슬을 찾기 위해서 www.acmicpc.net 풀이 dfs를 이용하여 중간 크기의 구슬이 될 수 없는 경우를 체크해주었다. #include #include #include #define MAX 100 using namespace std; int N, M; bool visited[MAX]; set fs[MAX], rs[MAX]; void input(){ cin >> N >> M; int a, b; for (int i = 0; i < M; i..

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..