나이차이


주민등록증의 번호가 주어지면 주민등록증 주인의 나이와 성별을 판단하여 출력하는 프로그램을 작성하세요.
주민등록증의 번호는 -를 기준으로 앞자리와 뒷자리로 구분된다.
뒷자리의 첫 번째 수가 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;
}