여행객의 총 교통비 구하기

Yun Young Choi·2022년 9월 10일

CodingTest-C

목록 보기
10/15
post-thumbnail

여행객 총 교통비는 계산기로 하면 될 것을 . . . 쯧쯧


main 함수 설명

int main() {
    int member_age1[5] = {13, 33, 45, 11, 20};
    int member_age1_len = 5;
    char* transportations1 = "Bus";
    int ret1 = solution(member_age1, member_age1_len, transportations1);
    printf("solution 함수의 반환 값은 %d 입니다.\n", ret1);
    
    int member_age2[10] = {25, 11, 27, 56, 7, 19, 52, 31, 77, 8};
    int member_age2_len = 10;
    char* transportations2 = "Ship";
    int ret2 = solution(member_age2, member_age2_len, transportations2);
    printf("solution 함수의 반환 값은 %d 입니다.\n", ret2);
}
  1. 정수형 배열에 여행객 5명의 나이를 배열해서 할당
  2. 정수 타입에 여행객 5명의 길이 5 할당
  3. char형 포인터 변수에 교통수단 "버스" 할당
  4. ret1 변수에 solution 함수 리턴값 할당

아래는 동일함!!


solution 함수 설명

int solution(int member_age[], int member_age_len, char* transportation) {
	int adult_expense = 0;
	int child_expense = 0;

	if(!strcmp(transportation, "Bus")) {
		adult_expense = 40000;
		child_expense = 15000;
	}
	else if(!strcmp(transportation, "Ship")) {
		adult_expense = 30000;
		child_expense = 13000;
	}
	else if(!strcmp(transportation, "Airplane")) {
		adult_expense = 70000;
		child_expense = 45000;
	}

	if(member_age_len >= 10) {
		adult_expense = ; // 빈칸
		child_expense = ; // 빈칸
	}
	int total_expenses = 0;
	for(int i = 0; i < member_age_len; i++) {
		if() // 빈칸
			total_expenses += adult_expense;
		else
			total_expenses += child_expense;
	}

	return total_expenses;
}
  1. 여행객 나이를 배열한 member_age와 여행객의 개수가 있는 member_age_len, 교통수단이 담겨 있는 transportation 파라미터
  2. 어른의 교통비를 0으로 초기화
  3. 어린이의 교통비를 0으로 초기화
  4. 첫 번째 if문 = 일치하는 교통수단일때에 각 성인/아이 요금을 할당
  5. 두 번째 if문 = 여행객이 10명 이상일 때 각 성인/아이 할인 요금을 곱하여 할당
  6. 정수형 총 교통비 변수를 0으로 초기화
  7. 반복문으로 여행객 배열 중 만약 20살 이하가 있으면 어른 요금을 증감 연산자로 할당
  8. 총 교통비 변수 리턴

빈칸 채우기

int solution(int member_age[], int member_age_len, char* transportation) {
	int adult_expense = 0;
	int child_expense = 0;

	if(!strcmp(transportation, "Bus")) {
		adult_expense = 40000;
		child_expense = 15000;
	}
	else if(!strcmp(transportation, "Ship")) {
		adult_expense = 30000;
		child_expense = 13000;
	}
	else if(!strcmp(transportation, "Airplane")) {
		adult_expense = 70000;
		child_expense = 45000;
	}

	if(member_age_len >= 10) {
		adult_expense = adult_expense * 0.9;
		child_expense = child_expense * 0.8;
	}
	int total_expenses = 0;
	for(int i = 0; i < member_age_len; i++) {
		if(member_age[i] >= 20)
			total_expenses += adult_expense;
		else
			total_expenses += child_expense;
	}

	return total_expenses;
}

int main() {
    int member_age1[5] = {13, 33, 45, 11, 20};
    int member_age1_len = 5;
    char* transportations1 = "Bus";
    int ret1 = solution(member_age1, member_age1_len, transportations1);
    printf("solution 함수의 반환 값은 %d 입니다.\n", ret1);
    
    int member_age2[10] = {25, 11, 27, 56, 7, 19, 52, 31, 77, 8};
    int member_age2_len = 10;
    char* transportations2 = "Ship";
    int ret2 = solution(member_age2, member_age2_len, transportations2);
    printf("solution 함수의 반환 값은 %d 입니다.\n", ret2);
}

전체 코드

int solution(int member_age[], int member_age_len, char* transportation) {
	int adult_expense = 0;
	int child_expense = 0;

	if(!strcmp(transportation, "Bus")) {
		adult_expense = 40000;
		child_expense = 15000;
	}
	else if(!strcmp(transportation, "Ship")) {
		adult_expense = 30000;
		child_expense = 13000;
	}
	else if(!strcmp(transportation, "Airplane")) {
		adult_expense = 70000;
		child_expense = 45000;
	}

	if(member_age_len >= 10) {
		adult_expense = adult_expense * 0.9;
		child_expense = child_expense * 0.8;
	}
	int total_expenses = 0;
	for(int i = 0; i < member_age_len; i++) {
		if(member_age[i] >= 20)
			total_expenses += adult_expense;
		else
			total_expenses += child_expense;
	}

	return total_expenses;
}

int main() {
    int member_age1[5] = {13, 33, 45, 11, 20};
    int member_age1_len = 5;
    char* transportations1 = "Bus";
    int ret1 = solution(member_age1, member_age1_len, transportations1);
    printf("solution 함수의 반환 값은 %d 입니다.\n", ret1);
    
    int member_age2[10] = {25, 11, 27, 56, 7, 19, 52, 31, 77, 8};
    int member_age2_len = 10;
    char* transportations2 = "Ship";
    int ret2 = solution(member_age2, member_age2_len, transportations2);
    printf("solution 함수의 반환 값은 %d 입니다.\n", ret2);
}

실행 결과


profile
안냥하세요

0개의 댓글