본문 바로가기

전체 글78

[RUST] TRPL : Chapter 8 - Collections Chapter 8 - CollectionsCollection의 데이터들은 힙에 저장된다.1. Vector→ 가변적인 개수의 값을 나란히 저장할 수 있다.Vec : 모든 값을 메모리에 나란히 배치하는 단일 데이터 구조에 여러 값을 저장할 수 있다.벡터는 제네릭을 사용하여 구현된다. let v: Vec = Vec::new();vec! 메크로를 활용하여 지정한 값을 보관하는 새 벡터를 생성할 수 있다.let v= vec![1, 2, 3];update → .push();get → &v[0] or .get(0).get() 메서드를 사용하면 벡터 사이즈보다 큰 값이 들어왔을 때 None을 반환한다.벡터의 메모리 let mut v = vec![1, 2, 3, 4, 5]; let first .. 2024. 11. 29.
[RUST] TRPL : Chapter 7 - Project Chapter 7모듈 시스템패키지 : 상자를 만들고, 테스트하고, 공유할 수 있는 Cargo기능크레이트 : 라이브러리나 실행 파일을 생성하는 모듈 트리모듈 및 사용 : 경로의 구성, 범위 및 개인 정보 보호를 제어할 수 있다.경로 : 구조체, 함수 또는 모듈과 같은 항목의 이름을 지정하는 방법0. 크레이트Rust 컴파일러가 한 번에 고려하는 가장 작은 양의 코드.크레이트는 모듈을 포함할 수 있으며, 모듈은 크레이트와 함께 컴파일되는 다른 파일에 정의될 수 있다.바이너리 크레이트 : 명령줄 프로그램이나 서버와 같이 실행할 수 있는 실행 파일로 컴파일할 수 있는 프로그램. (main) src/main.rs라이브러리 크레이트 : 기능이 없고 main 실행 파일로 컴파일되지 않는다. 대신 여러 프로젝트에서 공유.. 2024. 11. 29.
[개쉬운 풀이] 백준 15989 1, 2, 3 더하기 4 (8일차) https://www.acmicpc.net/problem/15989 문제 생각처음에는 이항계수 문제인 줄 알았다. 그러나 순서 상관 없이 오직 정수 1, 2, 3을 이용해서 모든 수를 만드는 문제이다. 그래서 처음 DP로 접근하여 생각을 해보았다. 정수 / 3으로 3이 몇개 들어가는지 계산을 해보았고 이후 각 3의 개수에 따라 2가 들어가는 갯수만 세주면 나머지 1은 자동으로 빈자리를 채워준다. 이렇게 생각하니 DP까지도 생각할 필요 없이 단순 계산으로 풀 수 있었다. 즉, N을 3으로 나누고, 3을 몇개 쓸 것인지 for 문을 통해서 돌린다. 이후 3으로 사용하고 남은 나머지 값(=tmp)에 tmp/2 +1 하면 답이다.->tmp/2 + 1에서 +1을 한 이유는 2를 아예 안쓰는 경우를 더한 것이다. .. 2024. 11. 29.
[개쉬운 풀이] 백준 4659 비밀번호 발음하기 (7일차) https://www.acmicpc.net/problem/4659 문제 생각먼저 주어진 3가지 조건을 모두 만족해야 acceptable 이라고 할 수 있다.모음(a,e,i,o,u) 하나를 반드시 포함하여야 한다.모음이 3개 혹은 자음이 3개 연속으로 오면 안 된다.같은 글자가 연속적으로 두번 오면 안되나, ee 와 oo는 허용한다.모음이 중심이므로 한 글자씩 모음을 판별하면서 진행하면 될 것 같다.2번은 이전전, 인덱스 기준 -2 를 판별하는 것이 아닌, 모음과 자음의 갯수 count를 각각 양수와 음수로 더하여 판별하면 된다.즉, abs(count)를 진행했을 때 2를 넘어가면 return false해주면 된다. 3번은 이전 글자를 받아와서 매번 계속 확인해주면 된다. 이때 ee와 oo는 허용하는 케이.. 2024. 11. 28.