[C & RUST] V-Code/차량 접근 제어 시스템
📌 난이도
⭐️⭐️⭐️
💡 문제
차량 보안 시스템에서 허가된 사용자만이 차량의 시동을 걸 수 있습니다. 시스템은 4자리의 PIN 코드를 사용하여 인증합니다. 저장된 허가된 PIN 코드는 1234입니다. 입력된 PIN 코드가 허가된 PIN 코드와 일치하는지 확인하는 프로그램을 작성하세요.
입력
첫 번째 줄에 시도 횟수 N이 주어집니다.
다음 N개의 줄에 각각 입력된 4자리 PIN 코드가 주어집니다.
출력
각 시도에 대해 “Access Granted” 또는 “Access Denied”를 출력하세요.
입력 예시
3
1111
1234
0000
출력 예시
Access Denied
Access Granted
Access Denied
📝 풀이
입력된 PIN 코드와 저장된 PIN 코드를 비교하여 일치하면 “Access Granted”를, 그렇지 않으면 “Access Denied”를 출력합니다.
📃 소스코드
// C
코드 복사
#include <stdio.h>
#include <string.h>
int main() {
int N;
char input_pin[5]; // 4자리 PIN 코드 + null 문자
char authorized_pin[] = "1234";
// 시도 횟수 입력
scanf("%d", &N);
for (int i = 0; i < N; i++) {
// PIN 코드 입력
scanf("%s", input_pin);
// 입력된 PIN 코드와 허가된 PIN 코드 비교
if (strcmp(input_pin, authorized_pin) == 0) {
printf("Access Granted\n");
} else {
printf("Access Denied\n");
}
}
return 0;
}
코드 설명
입력 받기
- scanf(“%d”, &N);을 사용하여 시도 횟수 N을 입력받습니다.
- for 루프를 사용하여 N번 PIN 코드를 입력받습니다.
- 각 PIN 코드는 scanf(“%s”, input_pin);을 통해 문자열로 입력받습니다.
PIN 코드 비교
- strcmp(input_pin, authorized_pin) 함수를 사용하여 입력된 PIN 코드와 허가된 PIN 코드 “1234”를 비교합니다.
- 비교 결과가 0이면 일치하는 것이므로 “Access Granted”를 출력합니다.
- 그렇지 않으면 “Access Denied”를 출력합니다.
// rust
use std::io::{self, BufRead};
fn main() {
// 표준 입력을 잠금
let stdin = io::stdin();
let mut lines = stdin.lock().lines();
// 시도 횟수 N을 입력받음
let n: usize = lines.next().unwrap().unwrap().trim().parse().unwrap();
let authorized_pin = "1234";
for _ in 0..n {
// PIN 코드 입력받기
let input_pin = lines.next().unwrap().unwrap();
// 입력된 PIN 코드와 허가된 PIN 코드 비교
if input_pin == authorized_pin {
println!("Access Granted");
} else {
println!("Access Denied");
}
}
}
코드 설명
입력 받기
- lines.next().unwrap().unwrap()을 사용하여 첫 번째 줄에서 시도 횟수 n을 문자열로 입력받습니다.
- trim().parse().unwrap()를 통해 문자열을 공백 제거 후 usize 타입으로 파싱합니다.
- for 루프를 사용하여 n번 PIN 코드를 입력받습니다.
- 각 PIN 코드는 lines.next().unwrap().unwrap()을 통해 문자열로 입력받습니다.
PIN 코드 비교
- 입력된 input_pin과 허가된 PIN 코드 “1234”를 비교합니다.
- 일치하면 “Access Granted”를 출력하고, 그렇지 않으면 “Access Denied”를 출력합니다.
댓글남기기