분류 전체보기 95

[rust] Ownership 1

Stack과 heap에 대한 이해가 필요하다. 일반적으로 (스크립트언어가 아니라면) 컴파일 타임에 size를 알수없는경우 heap에 저장한다고 보면 된다. 특징 1. 모든 변수는 scope를 벗어나면 invalid 된다. Ownership Rules 1. 러스트의 모든 value는 owner를 가지고 있다. 2. 하나의 owner만 가질 수 있다. 3. scope를 벗어나면, value는 없어진다. 가비지컬렉션을 사용하지 않는 언어에서는 직접 메모리를 할당/해제해주어야 하는데, rust에서는 ownership이라는 것을 이용한다. (이를 통해 안전하고 효율적으로 코드를 짤 수 있다고 한다.) 예시 (string literal의 경우 스택에 저장된다.) {// s는 invalid한 상황. let s = "..

[rust] note: the msvc targets depend on the msvc linker but `link.exe` was not found

에러 note: the msvc targets depend on the msvc linker but `link.exe` was not found note: please ensure that VS 2013, VS 2015, VS 2017 or VS 2019 was installed with the Visual C++ option 상황 scoop을 통해 rust를 uninstall하고 rustup을 다시 설치하였다. 그 이후 cargo build를 하려고하니 해당 에러가 발생하였다. msvc 계열은 보통 visual studio 에서 많이 붙는 네이밍인데, 나는 보통 gcc/g++과 같은 gnu 계열을 사용하오 있는 상황이었다.(이전 rust도 gcc설치하고 사용했었음) 해결법 rustup show 커맨드로..

[rust] 윈도우에서 러스트 시작해보기

윈도우에서 환경변수 설정, 커맨드를 통한 패키지 설치가 어려워서, scoop을 활용을 이용하였다. (보통 개발시 wsl을 활용하여 개발한다.) 예전에 설치해서 기억이 안나서, 다른 링크로 공유하겠다. https://okky.kr/article/592228 OKKY | 개발툴 및 어플을 편하게 설치 해주는 scoop 커멘드라인 인스톨러 안녕하셔요. 팁이라고 하기에도 뭐하지만.. 윈 7시절부터 쓰다보니 워낙 편해서 한번 올려봅니다. 아래는 공홈이구요. OFFICIAL HOMEPAGE : https://scoop.sh/ 개발툴 및 어플을 커멘드라인 몇줄로 아주 편 okky.kr scoop은 리눅스에서 apt, 맥북에서의 homebrew라고 생각하면 좋다. 설치가 되었다면, 해당 명령어로 필요한 것을 설치한다...

[qwiklab] 클라우드 리소스 생성 및 관리 : 챌린지 실습

실습을 따라하면서 진행했는데도 어려워서 간단하게 적어두었다. gcloud compute instances create nucleus-jumphost-815 --machine-type f1-micro --zone us-east1-b gcloud config set compute/zone us-east1-b gcloud container clusters create nucleus-cluster gcloud container clusters get-credentials nucleus-cluster kubectl create deployment hello-server --image=gcr.io/google-samples/hello-app:2.0 kubectl expose deployment hello-serve..

[HackerRank][Python] Day 29 : Bitwise AND

어려운 문제는 아니지만 내가 보통 푸는 방법과 다르게 풀어서 정리해두려고 한다. 문제 Objective Welcome to the last day! Today, we're discussing bitwise operations. Check out the Tutorial tab for learning materials and an instructional video! Task Given set . Find two integers, and (where ), from set such that the value of is the maximum possible and also less than a given integer, . In this case, represents the bitwise AND operator..

[백준][c++] 7662 이중 우선순위큐

문제 이중 우선순위 큐(dual priority queue)는 전형적인 우선순위 큐처럼 데이터를 삽입, 삭제할 수 있는 자료 구조이다. 전형적인 큐와의 차이점은 데이터를 삭제할 때 연산(operation) 명령에 따라 우선순위가 가장 높은 데이터 또는 가장 낮은 데이터 중 하나를 삭제하는 점이다. 이중 우선순위 큐를 위해선 두 가지 연산이 사용되는데, 하나는 데이터를 삽입하는 연산이고 다른 하나는 데이터를 삭제하는 연산이다. 데이터를 삭제하는 연산은 또 두 가지로 구분되는데 하나는 우선순위가 가장 높은 것을 삭제하기 위한 것이고 다른 하나는 우선순위가 가장 낮은 것을 삭제하기 위한 것이다. 정수만 저장하는 이중 우선순위 큐 Q가 있다고 가정하자. Q에 저장된 각 정수의 값 자체를 우선순위라고 간주하자. ..

[프로그래머스][python] 이중우선순위큐

문제 설명 이중 우선순위 큐는 다음 연산을 할 수 있는 자료구조를 말합니다. 명령어수신 탑(높이) I 숫자 큐에 주어진 숫자를 삽입합니다. D 1 큐에서 최댓값을 삭제합니다. D -1 큐에서 최솟값을 삭제합니다. 이중 우선순위 큐가 할 연산 operations가 매개변수로 주어질 때, 모든 연산을 처리한 후 큐가 비어있으면 [0,0] 비어있지 않으면 [최댓값, 최솟값]을 return 하도록 solution 함수를 구현해주세요. 제한사항 operations는 길이가 1 이상 1,000,000 이하인 문자열 배열입니다. operations의 원소는 큐가 수행할 연산을 나타냅니다. 원소는 “명령어 데이터” 형식으로 주어집니다.- 최댓값/최솟값을 삭제하는 연산에서 최댓값/최솟값이 둘 이상인 경우, 하나만 삭제합..

[rustc] cargo run 시 error: linking with `x86_64-w64-mingw32-gcc` failed: exit code: 1

에러 $ cargo run Compiling guessing_game v0.1.0 (C:\Users\Hyun\OneDrive - skku.edu\study_log\210912~ 알고리즘\doRust\guessing_game) error: linking with `x86_64-w64-mingw32-gcc` failed: exit code: 1 | = note: "x86_64-w64-mingw32-gcc" "-fno-use-linker-plugin" "-Wl,--dynamicbase" "-Wl,--disable-auto-image-base" "-m64" "-Wl,--high-entropy-va" "C:\\Users\\Hyun\\scoop\\apps\\rust\\1.57.0\\lib\\rustlib\\x86_..

프로그래밍 2021.12.09

[백준][C++] 7662 우선순위 큐

프로그래머스에도 비슷한 문제가 있어서 그때는 파이썬으로 heapq 활용해서 간단하게 구현했었는데, 이번에는 C++로 풀었다. 파이썬에서 max(리스트) 기능이 얼마나 소중한거인지 깨달았다... 두개의 우선순위큐(min heap, max heap) 를 써야되는 것은 알고있었다. 그런데 시간초과가 문제였다. 처음에는 Delete할때마다 다른 큐에서도 pop하면서 찾아서 다시 넣어주고 그랬는데, 최악 케이스 N log(N)이라서 문제였나보다. 그래서 검색하던 도중 lazy update에 대해서 보게되었다. delete 해야할 것들을 따로 저장해주고, Delete때마다 pop()해서 나오는 힙에서 확인해주었다. qLen라는 것을 저장해두어 qLen이 0일때 발생하는 불필요한 동기화를 없애주었다. // 반례 ht..

[프로그래머스][python] 주식 가격

문제 설명 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,000 이하인 자연수입니다. prices의 길이는 2 이상 100,000 이하입니다. 입출력 예pricesreturn [1, 2, 3, 2, 3] [4, 3, 1, 1, 0] 풀이 스택을 활용하여 풀었다. 스택에 집어넣으면서, 스택 맨위값과 비교하면서 감소하면(stack[num_element-1][1] > price 상황)스택에서 pop하며 현재의 시간에서 price의 시간을 뺴서(idx - ith) 떨어지지 않은 기간을 기록한다. for문을 다 돌고, stack에 남아있다면..

반응형