요약 - 요소 찾기
Coddy Rust 여정의 Logic & Flow 섹션에 포함된 레슨 — 66개 중 41번째.
챌린지
쉬움두 개의 입력을 받게 됩니다. 첫 번째 입력은 쉼표로 구분된 숫자 목록(예: 10,20,30,40)이고, 두 번째 입력은 찾고자 하는 대상 숫자입니다. 쉼표로 구분된 숫자들을 파싱하여 벡터에 저장한 다음, 대상 숫자를 검색하세요. .iter().position()을 사용하여 대상 숫자의 인덱스를 찾으면 Option<usize>가 반환됩니다. match를 사용하여 두 가지 경우를 모두 처리하고 적절한 메시지를 출력하세요.
요구 사항:
- 첫 번째 입력(쉼표로 구분된 숫자)을 읽고 공백을 제거합니다.
- 입력을 쉼표로 분할하고 각 부분을
i32로 파싱하여 벡터를 생성합니다. - 두 번째 입력(대상 숫자)을 읽고 공백을 제거합니다.
- 대상 숫자를
i32로 파싱합니다. .iter().position(|&x| x == target)를 사용하여 벡터에서 대상 숫자를 검색합니다.match표현식을 사용하여.position()에서 반환된Option을 처리합니다.Some(index)암(arm)에서는Found at index [index]를 출력합니다.None암(arm)에서는Not found를 출력합니다.
입력:
- 첫 번째 줄: 쉼표로 구분된 숫자 (예:
10,20,30,40) - 두 번째 줄: 찾고자 하는 대상 숫자 (예:
30)
출력:
- 대상을 찾은 경우:
Found at index [index] - 대상을 찾지 못한 경우:
Not found
직접 해보기
use std::io::{self, BufRead};
fn main() {
let stdin = io::stdin();
let mut lines = stdin.lock().lines();
// 쉼표로 구분된 숫자들을 읽습니다
let numbers_input = lines.next().unwrap().unwrap().trim().to_string();
// 대상 숫자를 읽습니다
let target_input = lines.next().unwrap().unwrap().trim().to_string();
// 쉼표로 구분된 숫자들을 파싱하여 벡터에 저장합니다
let numbers: Vec<i32> = numbers_input
.split(',')
.map(|s| s.trim().parse().unwrap())
.collect();
// 대상 숫자를 파싱합니다
let target: i32 = target_input.parse().unwrap();
// TODO: 아래에 코드를 작성하세요
// .iter().position()을 사용하여 대상을 찾고 match를 사용하여 결과를 처리하세요
}