반응형
https://www.acmicpc.net/problem/15351
15351번: 인생 점수
어떤 사람이 무엇을 즐기느냐에 따라 그 사람의 인생 점수를 측정할 수 있다. A를 1점, B를 2점, ... , Z를 26점으로 해, 즐기는 것의 이름의 알파벳 점수를 모두 더하면 된다. 예를 들어, "OTAKU LIFE" 는
www.acmicpc.net
간단 구현 문제였습니다.
📕 풀이방법
📔 입력 및 초기화
사람 수 n, 점수를 출력할 score를 선언 후 적절히 입력받습니다.
📔 풀이과정
📑 C++
아스키 코드표에 있는 알파벳 대문자의 문자열들은 가장 초기의 대문자인 'A'를 뺐을 때 자료형이 int로 변환됩니다. 이특성을 이용해 각 문자가 알파벳인 경우 변환해 score에 누적해줍니다.
📑 rust
as 라는 casting 구문을 이용해 마찬가지로 누적해 score에 더해줍니다.
📔 정답출력
조건에 따라 점수를 출력해줍니다.
📕 Code
📑 C++
#include <bits/stdc++.h>
using namespace std;
int n, score;
string s;
int main(){
cin >> n;
cin.ignore();
while(n--){
score = 0;
getline(cin, s);
for(auto c : s){
if(c == ' ') continue;
score += c - 'A' + 1;
}
if(score == 100) cout << "PERFECT LIFE\n";
else cout << score << '\n';
}
}
📑 Rust
use std::io;
fn main(){
let mut line = String::new();
io::stdin().read_line(&mut line).expect("wrong io");
let n = line.trim().parse::<i64>().unwrap();
for _ in 0..n {
let mut score = 0;
let mut line = String::new();
io::stdin().read_line(&mut line).expect("wrong io");
let life = line.trim();
for c in life.chars() {
if c == ' ' {
continue;
}
score += c as usize - 'A' as usize + 1;
}
if score == 100 {
println!("PERFECT LIFE");
}
else {
println!("{}", score);
}
}
}
*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.
'Algorithm > Implementation' 카테고리의 다른 글
(C++, Rust) - 백준(BOJ) 25600 : Triathlon (0) | 2022.09.18 |
---|---|
(C++) - 백준(BOJ) 15923 : 욱제는 건축왕이야!! (0) | 2022.09.16 |
(C++, Rust) - 백준(BOJ) 23802 : 골뱅이 찍기 - 뒤집힌 ㄱ (0) | 2022.09.12 |
(C++, Rust) - 백준(BOJ) 22155 : Простая задача (0) | 2022.09.12 |
(C++, Rust) - 백준(BOJ) 17210 : 문문문 (0) | 2022.09.09 |