오랜만에 코딩 블로그에 글 써보기
요즘 러스트를 공부해보고 있는데 언어가 하도 낯설어서 백준으로 친해지기로 했다
solved.ac에 새싹이라는 탭이 새로 생겼길래 쉬운 문제들로 시작
use std::io;
fn main() {
let mut s = String::new();
let mut array: [i32; 201] = [0; 201];
io::stdin().read_line(&mut s).unwrap();
s.clear();
io::stdin().read_line(&mut s).unwrap();
let values:Vec<i32> = s
.as_mut_str()
.split_whitespace()
.map(|s| s.parse().unwrap())
.collect();
for i in values {
array[i as usize+100] += 1;
}
s.clear();
io::stdin().read_line(&mut s).unwrap();
let val: i32 = s.trim().parse().unwrap();
println!("{}",array[val as usize+100]);
}
이 문제를 풀면서 알게된것
1. rust read_line은 c랑 달리 변수를 새로 만드는게 아니라 기존 string에 새로운 line을 추가한다
처음에 두번째 줄에 주어질 변수의 개수가 나오는데 이게 values에 계속 포함됐다
clear를 해주거나 String::new로 새로 만들어주어야 한다
2. 배열의 index를 변수로 쓰려면 i as usize로 형변환을 시켜주어야 한다
안그러면
slice indices are of type `usize` or ranges of `usize`
이런 에러가 난다
아직 익숙해지려면 한참 걸릴 것 같지만 앞으로 화이팅
'알고리즘' 카테고리의 다른 글
[Rust] 백준 2754번 학점계산 (0) | 2023.02.11 |
---|---|
[Rust] 백준 2744 대소문자 바꾸기 (0) | 2023.02.05 |
[C++] 별자리 만들기 (0) | 2021.10.29 |
[C++] 백준 23288 삼성기출 주사위 굴리기 2 (0) | 2021.10.26 |
[C++] 가장 가까운 두 점 (0) | 2021.10.16 |