Rust 함수들과 option 개념을 알게 되었던 문제
처음에 c 생각하면서 무지성으로 짠 코드
use std::io;
use std::char::from_u32;
fn main() {
let mut s = String::new();
let mut ans = String::new();
io::stdin().read_line(&mut s).unwrap();
for c in s.chars() {
if c>='a' && c<='z' {
ans.push(from_u32(c as u32 - 'a' as u32 + 'A' as u32).unwrap());
}
else if c>='A' && c<='Z' {
ans.push(from_u32(c as u32 - 'A' as u32 + 'a' as u32).unwrap());
}
}
println!("{}",ans);
}
c처럼 char에 숫자 더해서 아스키코드값 이용하는게 잘 안되었다
게다가 from_u32라는 함수를 사용하면 option에 쌓여서 나와서 unwrap을 해주어야했다
친구가 실제 코드에서는 이렇게 대충 unwrap하면 큰일날수도 있다고 한다ㅋㅋㅋ
아무튼 어찌저찌 제출은 성공했으나 코드가 너무 못생겨서 다른 사람들 코드를 참고해서 새로 짜봤다
use std::io;
fn main() {
let mut s = String::new();
io::stdin().read_line(&mut s).unwrap();
for c in s.chars() {
if c.is_uppercase() {
print!("{}",c.to_lowercase());
}
else if c.is_lowercase() {
print!("{}",c.to_uppercase());
}
}
}
이렇게 간단하게 짤 수 있다니..
처음 짠 코드가 부끄러워지는 순간ㅋㅋㅋ
'알고리즘' 카테고리의 다른 글
[Rust] 백준 2630번 색종이 만들기 (0) | 2023.02.12 |
---|---|
[Rust] 백준 2754번 학점계산 (0) | 2023.02.11 |
[Rust] 백준 10807번 개수 세기 (1) | 2023.01.20 |
[C++] 별자리 만들기 (0) | 2021.10.29 |
[C++] 백준 23288 삼성기출 주사위 굴리기 2 (0) | 2021.10.26 |