본문 바로가기

전체 글

(21)
[알고리즘 문제] 백준 8905번 리트 8905번: 리트 (acmicpc.net) 8905번: 리트 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 세 줄로 이루어져 있다. 첫째 줄에는 한 알파벳을 리트로 바꿨을 때 리트의 최대 길이 k가 주어진다. (1 ≤ k ≤ 3) 둘째 줄에는 www.acmicpc.net 문제 원래 단어와 목표 단어가 주어졌을 때, 단어의 글자를 치환해 다른 단어로 바꿀 수 있는지를 묻는 문제입니다. 예를 들어 ppap를 |>|>0|>로 바꾸려면 p를 |>로, a를 0으로 치환할 수 있습니다. 만약 baa를 |>0>로 바꾼 다면, a에 매칭되는 문자를 찾을 수 없어 불가능합니다. 아이디어 문자열의 길이는 최대 15, 한 알파벳과 대응되는 문자열은 최대 3 길이를 가지니, 모든 경우를 구해 해결할 수 ..
[Rust] 숫자를 입력 받기 let mut str = String::new(); std::io::stdin().read_line(&mut str).expect("failed to read from stdin"); let v = str .split_whitespace() .map(|str| str.parse::().unwrap()) .collect::(); Rust는 C++의 cin처럼 자동으로 숫자 입력을 받아주지 않기에 직접 변환을 해야 합니다. 위 코드는 "1 2 3" 입력을 [1, 2, 3] 벡터로 변환합니다. std::io::stdin().read_line(&mut str) pub fn read_line(&self, buf: &mut String) -> io::Result { self.lock().read_line(buf) ..
[알고리즘 문제] 백준 1707번 이분 그래프 1707번: 이분 그래프 (acmicpc.net) 1707번: 이분 그래프 입력은 여러 개의 테스트 케이스로 구성되어 있는데, 첫째 줄에 테스트 케이스의 개수 K가 주어진다. 각 테스트 케이스의 첫째 줄에는 그래프의 정점의 개수 V와 간선의 개수 E가 빈 칸을 사이에 www.acmicpc.net 문제 주어진 그래프에서 정점을 두 집합으로 분리하되, 두 집합 사이에 인접한 점이 없도록 하는 문제입니다. 아이디어 두 집합 사이에 인접한 점이 없다는 말은, 인접한 두 점은 다른 집합이라는 뜻입니다. 이를 통해 각 정점의 집합을 골라가며 그래프를 탐색하면 해결할 수 있습니다. 여기서는 BFS를 사용해보겠습니다. 1. 시작점을 임의의 집합으로 정하고 탐색을 시작합니다. 2. 자신과 인접한 점은 다른 집합으로 표시..