it 취업을 위한 알고리즘 문제풀이 입문 : 5. 나이 계산
나이차이
주민등록증의 번호가 주어지면 주민등록증 주인의 나이와 성별을 판단하여 출력하는 프로그램을 작성하세요.
주민등록증의 번호는 -를 기준으로 앞자리와 뒷자리로 구분된다.
뒷자리의 첫 번째 수가 1이면 1900년대생 남자이고, 2이면 1900년대생 여자, 3이면 2000년대생 남자, 4이면 2000년대생 여자이다.
올해는 2019년입니다. 해당 주민등록증 주인의 나이와 성별을 출력하세요.
▣ 입력설명
첫 줄에 주민등록증 번호가 입력됩니다.
▣ 출력설명
첫 줄에 나이와 성별을 공백을 구분으로 출력하세요. 성별은 남자는 M(man), 여자는 W(Woman)로 출력한다.
▣ 입력예제 1
780316-2376152
▣ 출력예제 1
42 W
▣ 입력예제 2
061102-3575393
▣ 출력예제 2
14 M
풀이
나이와 성별을 한번에 계산하는 방법과 나이와 성별을 분리해서 계산하는 방법 두 가지로 풀이가 두 개이다.
첫 번째 풀이!
string str;
void solve()
{
cin >> str;
int temp = (str[0] - '0') * 10 + (str[1] - '0');
int age;
if (str[7] == '1')
{
age = 100 - temp + 20;
cout << age << " " << "M";
}
else if (str[7] == '2')
{
age = 100 - temp + 20;
cout << age << " " << "W";
}
else if (str[7] == '3')
{
age = 20 - temp;
cout << age << " " << "M";
}
else if (str[7] == '4')
{
age = 20 - temp;
cout << age << " " << "W";
}
}
두 번째 풀이!
void solve2()
{
cin >> str;
int temp = (str[0] - '0') * 10 + (str[1] - '0');
int age;
if (str[7] == '1' || str[7] == '2')
{
age = 100 - temp + 20;
}
else
{
age = 20 - temp;
}
cout << age << " ";
if (str[7] == '1' || str[7] == '3')
{
cout << "M";
}
else
{
cout << "W";
}
}
전체 코드
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include<iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
string str;
void solve()
{
cin >> str;
int temp = (str[0] - '0') * 10 + (str[1] - '0');
int age;
if (str[7] == '1')
{
age = 100 - temp + 20;
cout << age << " " << "M";
}
else if (str[7] == '2')
{
age = 100 - temp + 20;
cout << age << " " << "W";
}
else if (str[7] == '3')
{
age = 20 - temp;
cout << age << " " << "M";
}
else if (str[7] == '4')
{
age = 20 - temp;
cout << age << " " << "W";
}
}
void solve2()
{
cin >> str;
int temp = (str[0] - '0') * 10 + (str[1] - '0');
int age;
if (str[7] == '1' || str[7] == '2')
{
age = 100 - temp + 20;
}
else
{
age = 20 - temp;
}
cout << age << " ";
if (str[7] == '1' || str[7] == '3')
{
cout << "M";
}
else
{
cout << "W";
}
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
freopen("input.txt", "rt", stdin);
solve2();
return 0;
}