앞에는 6글자, 뒤에는 7글자로 총 6 + 1 + 7 = 14개 글자가 들어간다.
내가 푼 풀이
#include <iostream>
using namespace std;
int main(){
int year = 0;
char a[14];
for( int i = 0; i < 14; i++){
cin >> a[i];
}
year = 10*(a[0]-48)+a[1]-48;
// 8번째, 즉 a[7]로 년대, 성별 판단
switch(a[7]){
case '1' :
cout << 20+100- year << " " << "M" << endl;
break;
case '2' :
cout << 20+100-year << " " << "W" << endl;
break;
case '3' :
cout << 20-year << " " << "M" << endl;
break;
case '4' :
cout << 20-year << " " << "W" << endl;
break;
}
return 0;
}
해답
#include <stdio.h>
using namespace std;
int main(){
// freopen("input.txt", "rt", stdin);
int birthYear, age = 0;
char identy[20]; // 넉넉하게 배열 사이즈를 20으로 잡 자
//4. 주민등록증 번호를 입력한다.
scanf("%s", &identy);
//2. 나이: 주민등록증 1,2,7 번째 자리로 판단
if( identy[7] == '1'| identy[7] == '2'){
birthYear = 1900 + 10 * (identy[0]-48) + identy[1] - 48;
}
else{
birthYear = 2000 + 10 * (identy[0]-48) + identy[1] - 48;
}
age = 2019 - birthYear +1;
printf("%d", age);
//3. 성별: 주민등록증 7번째 자리로 판단
if( identy[7] == '1'| identy[7] == '3') printf(" M\n");
else
printf(" W\n");
//1. 나이와 성별을 출력한다.
return 0;
}
'1' 작은 따옴표 꼭 넣기
C언어로 바꾸면서 배열을 입력할 때 for문으로 입력할 필요가 없어졌다.
char identy[20]; // 넉넉하게 배열 사이즈를 20으로 잡 자
//4. 주민등록증 번호를 입력한다.
scanf("%s", &identy);
scanf 한 줄이면 된다.
'Programming Language > C C++' 카테고리의 다른 글
[알고리즘 문제풀이] 7. 영어단어 복구★ (0) | 2022.01.05 |
---|---|
[알고리즘 문제풀이] 6. 숫자만 추출★ (0) | 2022.01.04 |
[알고리즘 문제풀이] 4. 나이 차이★ (0) | 2022.01.03 |
[알고리즘 문제풀이] 3. 진약수의 합★ (0) | 2022.01.03 |
[알고리즘 문제풀이] 2. 자연수의 합 (0) | 2022.01.03 |