반응형

전체 글 32

C++ vector sort , reverse

C++ vector 를 정렬하거나, 역순으로 돌리고자 할 때 작은 것을 맨 앞으로, 순차적으로 정렬하고자 할 때 sort(a.begin(), a.end()); 역순으로(큰 것을 맨 앞으로) 정렬하고자 할 때 begin -> rbegin 으로 변경해주면 된다. sort(a.rbegin(), a.rend()); 정렬은 하지 않고, 단순히 현재 순서를 역순으로 변경하고자 할 때 reverse(a.begin(), a.end()); vector의 begin(), end() 는 시작과 끝을 가르키는 것으로 sort, reverse 에서 파라미터로 입력되는 부분은 범위를 지칭한다. 만약에 한 vector a 가 10개의 구성요소로 이뤄져있을 때, 맨 처음부터 절반만 sort 하고 싶은 경우 sort(a.begin()..

코딩테스트 2022.09.22

C++ 최대공약수, 최소공배수 구하는 로직

두 자연수의 곱 = 최대공약수 x 최소공배수 최대공약수, 최소공배수 둘 다 구해야하는 상황에서 위 공식을 이용하면, 더 빠르게 결과를 얻을 수 있다. vector solution(int n, int m) { vector answer; // 임의의 두 자연수가 주어졌을 때, // 작은 수, 큰 수를 일단 구분한다 int small, big; if( n > m ){ big = n; small = m; }else{ big = m; small = n; } // 최대공약수를 구한다 // 두 자연수의 공통공약수 1로 초기화 int greatestCommonFactor = 1; // 최대공약수는 작은 수보다 클 수 없으므로 // 작은 수 부터 2까지 loop로 살펴보면서, // 주어진 두 자연수를 나눴을 때 나머지가..

코딩테스트 2022.09.22

C++ vector 초기화 방법 및 2차원 vector 행렬 덧셈 로직

vector test = { 1, 2, 3 }; 위와 같이 값이 포함되도록 vector를 초기화 해주면, vector test 에는 1,2,3 요소가 포함되게 된다. 위 vector 값을 빈 값으로 초기화가 필요한 경우가 있다. 그럴 때 사용하는 방법은 test.clear(); clear() 해주면 빈 값으로 초기화 된다. vector 초기화가 필요한 2차원 행렬 vector 덧셈 로직 예시이다. vector sum_two_dimensional_vector(vector arr1, vector arr2) { vector answer; vector temp; int sum; for(int i=0 ; i < arr1.size() ; i++ ){ // 1차원 vector 간의 합을 임시로 저장하는 vector ..

코딩테스트 2022.09.20

C++ 약수 개수를 구하는 로직

약수 란? 두 정수 a, b에 대하여 b=ac를 만족하는 정수 c가 존재한다면, a를 b의 약수라고 한다. 주어진 1이상의 자연수 n 에 대해서, 약수의 개수가 몇개인지 구하는 로직 // 주어진 n (1 이상인 자연수)의 약수개수를 구한다. int get_count_divisor( int n ) { // n 이 1인 경우, 약수는 1개 if( n == 1 ) return 1; // 약수 개수 담을 변수 // 1보다 큰 자연수 n의 약수에 '1'과 'n' 은 항상 포함되기 때문에 // 최소 약소개수를 2로 초기화함 int divisorCount = 2; // 약수인지 체크하는 범위는 // 2부터 n의 절반까지만 잡으면 됨 for( int i=2 ; i

코딩테스트 2022.09.19

docker 도커 파일 FROM, WORKDIR, COPY, CMD, RUN

FROM - 이미지 생성 시 기반이 되는 이미지 레이어를 명시 - : 형식으로 작성 - 태그를 붙이지 않으면 자동으로 가장 최신 버전으로 내려받음 (예: ubuntu:14.04) WORKDIR - 도커파일 뒤에 오는 모든 지시자(RUN, CMD, COPY, ADD 등)에 대한 작업 디렉토리를 설정 - 리눅스 명령어의 cd와 비슷한 역할 - 작업 디렉토리를 별도로 지정하여, 로컬에 있는 파일을 도커 컨테이너로 복사할 때 분리하는데 쓰임 COPY - 현재 로컬 컴퓨터에 있는 파일을 도커 컨테이너 안으로 복사하는 기능 RUN - 도커 이미지가 생성되기 전에 수행할 셀 명령어 CMD - 컨테이너가 시작됐을 때 실행할 실행 파일 또는 쉘 스크립트 - 이 명령어는 도커 파일 내에서 한 번만 쓸 수 있음 파일 예시 ..

docker 2022.01.04

docker 도커에서 redis 실행하기

1. 도커 환경에서 레디스 서버 실행 docker run redis 2. 명령 프롬프트(cmd) 하나 더 띄우고 docker ps 위 명령어로 redis 서버 컨테이너 ID를 확인 3. 레디스 클라이언트 실행 docker exec -it redis-cli exec 는 실행 중인 컨테이너에 명령어를 전달할 때 사용하는 명령어 -it 는 i(interactive)와 t(terminal)이 합쳐진 옵션 -it 가 없으면, 레디스 클라이언트가 실행 후 바로 종료되어, 명령어 입력이 안되므로 꼭 넣어야 함

docker 2022.01.03

docker 도커 명령어 모음

ls : 도커 이미지의 내부 파일 구조 보기 docker run ls - 예시 : docker run alpine ls alpine 이라는 도커 이미지에 어떤 파일 구조를 가지는지 볼 수 있음 - docker run hello-world ls 하면 오류 발생 hello-world 이미지에는 ls 명령어를 사용할 수 있는 파일이 들어있지 않기 때문 docker ps : 컨테이너 나열하기 - docker는 도커 클라이언트를 가리키며, ps는 oricess status의 약자 - 출력결과 (실행 중인 도커 컨테이너 있으면 아래에 목록이 뜸) CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES . CONTAINER ID : 컨테이너의 고유한 아이디 해시값, 실제로는 ..

docker 2022.01.03

docker 도커 hello-world 처음 수행

windows 에서 설치되었다는 가정하에 설명드림 도커를 처음 설치하고, 명령 프롬프트(windows버튼+R → cmd 입력) 를 실행한 후, 아래 명령어를 수행한다. docker run hello-world 그럼 Unable to find image 'hello-world:latest' locally 라는 메시지가 나온 후에 시간이 좀 지나서 아래의 메시지를 볼 수 있다. latest: Pulling from library/hello-world 2db29710123e: Pull complete Digest: sha256:2498fce14358aa50ead0cc6c19990fc6ff866ce72aeb5546e1d59caac3d0d60f Status: Downloaded newer image for hel..

docker 2022.01.02

docker 도커 설치방법 (window 윈도우) / WSL 2 설치

1. www.docker.com 에서 [Get Started] 버튼을 클릭하거나 https://www.docker.com/get-started 에 바로 들어간다. 2. Download for Windows 를 클릭 3. 다운받은 설치파일(Docker Desktop Installer.exe)을 더블클릭하여 실행 4. 체크된 그대로 두고, Ok 버튼을 클릭하여, 설치 5. 컴퓨터 재시작하면, 아래 창이 뜸 'I accept the terms' 체크하고 [Accept] 버튼 클릭 6. 아래처럼 WSL 2 installation is incomplete. 창이 뜨게 되면, 해당 창에 있는 링크(https://aka.ms/wsl2kernel) 을 클릭 이전 버전 WSL의 수동 설치 단계 | Microsoft Do..

docker 2022.01.02
반응형