본문 바로가기

RUST

[ 백준 | RUST ] 10950번 :: A + B -3

728x90
문제 : 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 
각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10)
예제 입력				출력
5
1 1				2
2 3				5
3 4				7
9 8				17
5 2				7

첫 줄에 몇번 입력할지 알려주고 그 다음 더할 숫자를 입력해주면 된다.

조금 디테일 하게 생각하는 사람이라면 출력을 한꺼면에 해야된다고 생각해서 귀찮다고 생각할 것이다. 

하지만 입력을 받을 때마다 출력을 해도 된다는 것을 알고 있다면 쉽게 풀 수있다.

use std::io;

fn main() {
    let mut count = String::new();

    io::stdin().read_line(&mut count).unwrap();
    let count: i32 = count.trim().parse().expect("Err");

    for i in 0..count {
        let mut _arr = String::new();
        io::stdin()
            .read_line(&mut _arr)
            .expect("입력을 읽을 수 없습니다.");
        let _arr: Vec<u32> = _arr
            .trim()
            .split_whitespace()
            .map(|x| x.parse().expect("잘못된 입력입니다."))
            .collect();
        println!("{}", _arr[0] + _arr[1]);
    }
}

이런 식으로 처음에 count 몇 번 입력을 받을지 받은후에 count 만큼 for 반복해주면 된다.

그다음 배열을 만들어서 첫번 째와 두번 째 수를 더해주면 끝난다.

 

만약에 한꺼번에 출력을 하고 싶다면 new_array[i] = arr[i] + arr[i +1]로 저장을 한 다음에 한 칸씩 미루면 서 값을 저장하면

마지막에 0..=5 ( 0부터 5까지 ) arr출력을 한다면 Vec변수를 하나 더 만들면 다 같이 출력을 할 수 있을 것 같다.