본문 바로가기

Algorithm/Brute Force

(Rust) - 백준(BOJ) 23348 : 스트릿 코딩 파이터

반응형

https://www.acmicpc.net/problem/23348

 

23348번: 스트릿 코딩 파이터

첫째 줄에 세 가지 기술의 난이도 $A$, $B$, $C$가 '한손 코딩', '노룩 코딩', '폰코딩' 순서대로 공백을 사이에 두고 주어진다. ($0 \le A, B, C \le 1,000$) 둘째 줄에 참가한 동아리의 수 $N$이 주어진다. ($1

www.acmicpc.net

전수조사 문제였습니다.

📕 풀이방법

📔 입력 및 초기화

점수정보와 동아리 정보, 각 동아리원의 기술 사용정보를 scores, club_numbers, tech_freq에 선언 후 저장합니다.

📔 풀이과정

각 동아리당 사용정보를 score에 누적해 저장합니다. 매 동아리당 최대 점수를 ans와 비교해 저장합니다.

📔 정답출력

ans를 출력해줍니다.


📕 Code

use std::{cmp, io};

fn main() {
    let mut ans: i64 = 0;
    let mut line = String::new();
    io::stdin().read_line(&mut line).expect("wrong io");

    let scores: Vec<i64> = line
        .split_whitespace()
        .map(|num| num.parse::<i64>().unwrap())
        .collect();

    let mut line = String::new();
    io::stdin().read_line(&mut line).expect("wrong io");

    let club_numbers = line.trim().parse::<i64>().unwrap();

    for i in 0..club_numbers {
        let mut score: i64 = 0;

        for k in 0..3 {
            let mut line = String::new();
            io::stdin().read_line(&mut line).expect("wrong io");
            let tech_freq: Vec<i64> = line
                .split_whitespace()
                .map(|num| num.parse::<i64>().unwrap())
                .collect();
            for j in 0..3 {
                score += tech_freq[j] * scores[j];
            }
        }

        ans = cmp::max(ans, score);
    }
    print!("{}", ans);
}

*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.