Update solution for 네_번째_점 w/ id 18510441
Time: 0ms MemUsage: 13032KB
This commit is contained in:
101
baekjoon/네_번째_점/solution_18510441.rs
Normal file
101
baekjoon/네_번째_점/solution_18510441.rs
Normal file
@@ -0,0 +1,101 @@
|
||||
use std::io;
|
||||
|
||||
struct Position{
|
||||
x: u32,
|
||||
y: u32,
|
||||
}
|
||||
|
||||
impl Position{
|
||||
fn init(x: u32, y: u32) -> Position{
|
||||
Position{
|
||||
x,
|
||||
y,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
struct Rectangle{
|
||||
xlines: [u32; 2],
|
||||
ylines: [u32; 2],
|
||||
counts: [u32; 4],
|
||||
}
|
||||
|
||||
impl Rectangle{
|
||||
fn init() -> Rectangle{
|
||||
Rectangle{
|
||||
xlines : [0;2],
|
||||
ylines : [0;2],
|
||||
counts : [0;4],
|
||||
}
|
||||
}
|
||||
|
||||
fn check(&mut self, pos: Position){
|
||||
let (x, y) = (pos.x, pos.y);
|
||||
|
||||
if self.xlines[0] == 0{
|
||||
self.xlines[0] = x;
|
||||
self.counts[0] = 1;
|
||||
}
|
||||
else if self.xlines[0] == x{
|
||||
self.counts[0] += 1;
|
||||
}
|
||||
else{
|
||||
self.xlines[1] = x;
|
||||
self.counts[1] += 1;
|
||||
}
|
||||
|
||||
if self.ylines[0] == 0{
|
||||
self.ylines[0] = y;
|
||||
self.counts[2] = 1;
|
||||
}
|
||||
else if self.ylines[0] == y{
|
||||
self.counts[2] += 1;
|
||||
}
|
||||
else{
|
||||
self.ylines[1] = y;
|
||||
self.counts[3] += 1;
|
||||
}
|
||||
}
|
||||
|
||||
fn find_last(&self) -> Position{
|
||||
let (mut x, mut y) : (u32, u32) = (0, 0);
|
||||
|
||||
for i in 0..2{
|
||||
if self.counts[i] == 1{
|
||||
x = self.xlines[i];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
for i in 2..4{
|
||||
if self.counts[i] == 1{
|
||||
y = self.ylines[i - 2];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Position::init(x, y)
|
||||
}
|
||||
}
|
||||
|
||||
fn main(){
|
||||
let mut rect : Rectangle = Rectangle::init();
|
||||
|
||||
for _i in 0..3{
|
||||
let mut line = String::new();
|
||||
io::stdin().read_line(&mut line)
|
||||
.expect("Failed to read line");
|
||||
let mut line = line.trim().split(" ");
|
||||
|
||||
let x = line.next().expect("Not enough inputs")
|
||||
.parse::<u32>().expect("Not an integer");
|
||||
let y = line.next().expect("Not enough inputs")
|
||||
.parse::<u32>().expect("Not an integer");
|
||||
|
||||
let pos = Position::init(x, y);
|
||||
rect.check(pos);
|
||||
}
|
||||
|
||||
let pos = rect.find_last();
|
||||
println!("{} {}", pos.x, pos.y);
|
||||
}
|
||||
Reference in New Issue
Block a user