Docker needs "permission" 도커를 설치하면 기본적으로 sudo 명령어를 필요로 한다. remote 장비에 도커를 설치하고 매번 sudo를 이용해 명령어를 실행하려니 너무 번거롭습니다. 다른 글을 많이 참고해보았지만 한번에 해결되는 글이 없어서 해결한 과정을 적어봅니다. Group Docker 먼저, 아래의 명령어로 docker 그룹을 만들어 줘야합니다. $ sudo groupadd docker 그 후, $USER(도커를 사용할 계정)을 docker 그룹에 추가시켜줍니다. 본인 말고 다른 사용자를 docker 그룹에 추가시키고 싶다면, $USER 대신 다른 사용자명을 넣어도 됩니다. $ sudo gpasswd -a $USER docker $ sudo usermod -aG docker $..
아이템 납품 컨텐츠 게임을 하다 보면 생활컨텐츠를 즐기는 경우도 있다. 그런 생활 컨텐츠 중, 이벤트성 컨텐츠는 특정 아이템을 NPC에게 납품해 일정 점수를 얻을 수 있고 그 점수를 모아 일정 순위 안에 들면 보상을 받을 수 있다. 파이널 판타지를 같이 즐기는 지인에게 문의가 왔다. "혹시, 10점, 32점, 35점의 아이템들을 적당히 납품해서 내 점수를 1234567점으로 만들 수 있을까?" 전부 다 짝수도 아니고 $GCD(10, 32, 35) = 1$이므로 모든 숫자를 완성할 수 있다. 따라서, 가능하다고 답해줬다. (글로벌 쿨 다운 아닙니다) "그럼, 10점, 32점, 35점 아이템을 몇 개 납품해야하는지 계산해주는 프로그램 만들어줘" 문제 분석 해결해야하는 문제는 간단하다. 바로 아래의 식을 만족..
ABC 169 AtCoder Beginner Contest 169 - AtCoder AtCoder is a programming contest site for anyone from beginners to experts. We hold weekly programming contests online. atcoder.jp A. Multiplication 1 $A, B$가 주어졌을 때, $A*B$를 출력하는 문제입니다. B. Multiplication 2 최대 10만개의 0과 $10^{18}$ 이하의 양의 정수로 이루어진 수열이 주어질 때, 수열에 등장한 수를 모두 곱한 값을 출력하는 문제입니다. 단, 수열의 수를 모두 곱한 값이 $10^{18}$을 넘는다면, $-1$을 출력해야 합니다. 수를 모두 곱해서 0이..
Swap Space란? OS에서 프로그램을 실행해 메모리에 올려 사용하다보면, RAM(Random Access Memory)의 용량이 부족할 때가 있다. 이 때, 대부분의 운영체제는 Secondary Storage인 Disk의 일부를 Virtual Memory로 활용하는데, Memory의 데이터를 디스크로 옮겨 보관하는 것을 Paging(페이징)이라고 한다. 그리고 이 Paging을 하기 위한 공간을 Swap Space라고 부른다. 그리고 페이징을 하는 경우는 메모리가 부족할 때도 있고 컴퓨터가 절전 모드(Hibernation)에 들어갈 때도 있다. 페이징을 하는 우선순위를 정하는 정책은 여러가지가 있다. 대표적인 예로 FIFO나 LRU를 들 수 있겠다. Swap Space in file system v..
AtCoder Beginner Contest 160 AtCoder Beginner Contest 160 - AtCoder AtCoder is a programming contest site for anyone from beginners to experts. We hold weekly programming contests online. atcoder.jp 오랜만에 AtCoder 포스팅으로 돌아왔습니다! 이마트에서 참치 세일을 한다길래 가봤는데 냉동참치더라구요. 냉동참치 200g에 12000원이라 그냥 야간 세일하는 초밥만 들고 집에 돌아왔습니다. 원래 AtCoder 시작 시간은 21:00이었구요 저는 22:00부터 시작해 40분동안 20분동안 A~C를 해결하고, 20분동안 D를 거의다 풀었을때 대회가 종료..
스코어보드가 아직 공개되지 않았지만, 교내 대회의 결과가 이미 나온 시점이라 대회를 회고하고자 합니다. 채점 도중에 Codeforces에서도 일어나지 않았던 채점 서버 다운이라는 정말 거대한 이슈가 있었습니다. 시작한지 30분 후에 제출한 소스코드의 AC/WA여부가 제출 1시간 30분 후인 2시간 후에 제공 되는 일이 있었습니다. 그거 말고도 채점이 지연되자 채점서버를 전부 닫아버리는(...) 일도 있어서 어느 시점 이후로부터는 채점이 전혀 되지 않았습니다. .. 뭐 이런 일도 있는 법인가 봅니다. 출제된 문제들 ProblemSet 등록을 제외한 몇 문제는 굉장히 난이도가 낮았지만, 그 문제들을 제외하고는 체감 난이도가 굉장히 높아서 당황했다. 개인적으로 느낀 난이도를 기준으로 정렬해서 서술해보겠습니다...
Codeforces Round #624 (Div. 3) Dashboard - Codeforces Round #624 (Div. 3) - Codeforces codeforces.com A. Add Odd or Subtract Even 처음에 정수 $a$와 $b$가 입력으로 들어오고 $a$에 홀수를 더하거나, 짝수를 빼는 연산을 해서 $b$를 만드는 문제였다. 그럼 단 다섯 가지 경우만 생각하면 되는데. 1. $ab$이고 $|b-a|$가 짝수인 경우 5. $a=b$인 경우 각 경우에 따라 차 만큼 더해주거나 빼고, 홀수 짝수를 판별해 1을 추가로 더하거나 빼주는 과정을 반복한다면 반드시 2회 안에 모든 $a$를 $b$로 만들 수 있다. B. WeirdSort 정렬은 정렬이지만, 특수한 규칙이 있는 정렬을 한..
Advent Calendar란? Advent Caldendar은 간단히 말하면 크리스마스가 오기를 기다리며 12/1 ~ 12/25까지 매일매일 뭔가 하나씩 꺼내어 즐기기 위한 달력이다. 구글 신에 의하면미래의 나를 위해 매일매일 써 둔 편지라던가, 초콜렛 같은 작은 과자를 꺼내 먹으며 크리스마스를 기다린다고 한다. 개발자에게 Advent Calendar란? 개발자에게 있어 advent calendar는 기술 커뮤니티나 회사에서 특정 주제와 관계 없이 개발에 관련된 글들을 블로그나 위키에 게재한 다음, 그 글의 주소와 제목을 advent calendar에 적어 매일매일 하나씩 오픈하는데 사용된다고 한다. 예를 들어, LINE Enginieering의 Advent Calendar이다 이와 같이 개발자들은 초..
대부분 OpenCV를 사용하면 Python을 사용하는 것 같다. 학교 과목 과제 때문에 OpenCV를 사용하게 되었는데 홈페이지 튜토리얼이 조금 불친절해서 여기 정리해두기로 했다. 1. OpenCV 다운로드 받기 https://opencv.org/releases/ 에 접속해 최신 버젼의 OpenCV 라이브러리를 다운로드 하자. Visual Studio에서 작업한다면 Windows환경일테니 다운로드 후 원하는 위치에 라이브러리를 설치해준다. 이 경로를 기억하고 있자. 2. 환경 변수 설정하기 OpenCV를 설치하게 되면 디렉토리 이름이 길어지는 경우가 있다. Windows 10 기준으로 환경 변수를 설정해주자. 2019년 10월 30일 기준으로 OpenCV를 설치하게 되면 vc14와 vc15가 설치되는데,..