본문 바로가기

전체 글

(336)
쉘 스크립트 자동화와 리눅스 환경설정 1. 로컬 컴퓨터와 리모트 컴퓨터- 로컬 컴퓨터는 본인의 물리적 컴퓨터를 의미한다. 리모트 컴퓨터는 가상 컴퓨터나 클라우드 컴퓨터 등 원격으로 접속하여 지금 접속한 물리 컴퓨터의 리소스가 아닌 리소스를 사용할 수 있다. 로컬 컴퓨터에서 작업하여 리모트 컴퓨터에서 배포하는 일은 매우 흔한 일이다. 이 개념은 깃을 관리하며 많이 겪었던 원격저장소와 로컬저장소의 개념과 유사하다. 그리고 이 원격 컴퓨터(자원)에 접속할 때 가장 많이 쓰이는 프로토콜이 바로 SSH이다.SSH보안: SSH는 데이터 전송 과정에서 암호화를 사용하여 데이터의 기밀성을 보호합니다. 이는 네트워크를 통해 전송되는 정보가 노출되지 않도록 합니다.원격 접속: SSH를 사용하여 원격 서버나 컴퓨터에 접속할 수 있습니다. 사용자는 SSH 클라이..
커밋의 단위, 규칙 커밋의 단위는 그 지점에서 반드시 버그가 없고 작업을 시작할 수 있는 지점으로 잡는다. 만약 로그인을 만든다고할 때 로그인 config를 만들었다면 커밋한다. fix: 고침feat: 기능 구현
Git의 작동원리와 기본 사용법, rebase 와 merge, fork의 사용이유 Git 이란?- 어렵게 생각할 필요 없이 많은 개발자들이 특정한 코드들을 함께 관리하고, 버전관리를 쉽게 할 수 있도록 만든 프로그램이다.  Git 용어 정리add : 작업 디렉토리에서 변경된 파일들을 스테이징 영역에 추가. 커밋의 전 단계라고 보면 된다.commit : 스테이징 영역에 있는 변경 사항을 실제 로컬 저장소에 기록한다.branch : 독립적으로 작업 가능한 브랜치를 생성한다. 예를들어 만약 A기능을 실험하고 싶다면 실험A 브랜치를 만들어 실험할 수 있다.checkout (또는 switch) : A 브랜치에서 B로 이동하여 작업하고 싶을 때 사용한다.push : 위에서 커밋한 내용을 실제 원격 저장소에 내보내기 위해 사용한다.pull : 원격 저장소의 변경 사항을 로컬 저장소로 가져온다. p..
엘리스 - 트리 위의 게임(C++) 코딩 첼린지? 문제여서 제공이 되는 지 모르겠다. 문제는 다음과 같다. 트리 위의 게임시간 제한: 1 초정점 N개의 트리에서 두 사람이 게임을 진행하려 한다.각 정점은 1번부터 N번 까지 번호가 매겨져 있고 루트노드는 1번 노드이다.게임은 서로 턴을 번갈아 가며 진행되고 트리 위에 놓을 수 있는 말과 함께 진행된다.두 사람의 점수는 모두 0점으로 시작한다.각 턴마다 두 사람은 다음과 같은 작업을 반복한다.현재 말이 놓여 있는 정점의 번호만큼 자신의 점수에 더한다.현재 말이 놓여 있는 정점의 자식 정점이 없다면 그대로 게임을 종료한다.자식 정점이 존재한다면 자식 정점 중 원하는 자식 정점으로 말을 옮긴다.게임이 종료되었을 때 선공의 점수가 후공의 점수보다 높거나 같다면 선공이 승리하고 아니라면 후공이 승리..
백준 7662번 - 이중 우선순위 큐 (C++) https://www.acmicpc.net/problem/7662 이름 처럼 우선순위큐를 반드시 두개 사용해야 풀 수 있다. 1 2 3 4 가 값으로 들어온다면, 하나의 큐는 1 2 3 4 순으로다른 하나의 큐는 4 3 2 1 순으로 우선순위가 구성되어야 한다. 즉, 최대힙과 최소힙이 필요하다. 아이디어 1.언제나 최대힙의 top > 최소힙의 top 이면 되지 않을까 즉, 만약 최대힙에서 pop을 3번, 최소힙에서 pop을 1번 하게 되면 최대힙의 top은 1이고 최소, 힙의 top은 2이다. 위의 원칙을 어겼다. 이 뜻은 이미 최소힙의 top은 최대힙에서 pop되었다는 의미이기 때문이다. 하지만 이 방법은 20퍼센트에서 틀렸습니다를 받았다. 만약 모든 수가 다르다는 조건이 있었다면 맞았을 지 모르겠으나..
배낭문제에서 넣은 것을 저장하는 아이디어 문제는 https://www.acmicpc.net/problem/14728 문제를 예로 들었다. 배낭문제를 푸는데 어떤 것을 넣었는지 기억해야하는 문제가 있었다. 나의 경우 trace 벡터를 만들고 배낭에 넣을 때의 따라 벡터를 조절하며 문제를 해결했다. 그러나 2차원 크기의 벡터가 필요하기 때문에 메모리가 상당히 많이 필요할 것으로 보여서 N이 충분히 작을 때만 사용할 수 있을 것 같다. 더 좋은 방법이 있을까... 트레이스 벡터는 만약 갱신하게 되면 i번 물건을 가져간다는 의미로 인덱스를 넣는다. dp와 거의 유사하게 동작한다. #include#includeusing namespace std;int N, M;int dp[101][10001];int main(){ cin >> N >> M; vector..
프로그래머스 - 파괴되지 않은 건물(C++, 누적합 응용) https://school.programmers.co.kr/learn/courses/30/lessons/92344?language=cpp 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 오늘 현대 오토에버 코딩테스트를 봤는데 누적합을 통해 지정 범위의 숫자들이 몇번 사용되었는지 확인해야하는 문제가 나왔다.누적합을 사용하면 효율적으로 풀 수 있는 문제였지만 난 생각해내지 못했다.. 아이디어는 다음과 같다. [1~ 7][3~8][4~9]  1~10각 자릿수가 아래 범위에 몇번 들었는지 확인하려고 한다. 그렇다면 가장 쉬운 방법은 각 숫자들을 범위와 대조하면 된다 ..
Java의 객체 정렬과 객체 우선순위 큐 난 C++를 사랑하는데... 기업들은 C++를 사랑하지 않는다..ㅠㅠ 그래서 코딩테스트를 준비해야하기 때문에 요즘 자바로 C++로 풀었던 것들을 다시 풀고있다. 그러다가 개인적으로 자바에서 가장 불편한 부분이 바로 정렬과 우선순위큐 였는데 이번 기회에 한번에 정리하고 가겠다. 예제는 강의실 배정 문제이다. 이 문제는 아주 베이직하게 정렬과 우선순위큐를 활용해야하는 문제이기 때문에 가져왔다. 예제31 33 42 3 -> 여기서 정렬했을 땐  1 33 42 3 순으로 나와야하고 세개가 모두 우선순위큐에 있다면 3 41 32 3 순서로 나와야한다. Comparator 와 Comparable 의 차이잠시 영어시간을 가져보면 전자는 비교자, 후자는 비교할수있는? 이런 뜻이다. 그러니까 전자는 실제 sort 함수에..