인프런 커뮤니티 질문&답변

이민주님의 프로필 이미지
이민주

작성한 질문수

it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비

5. 나이 계산(문자열 컨트롤)

5번 채점파일에 문제가 있는거 같습니다.

작성

·

132

0

#include <iostream>
#include <string>
using namespace std;

int main() {
    string num;
    char mw;
    int i, age=0;

    getline(cin, num);
    
    int n = num.find("-", 1);

    if(num[n+1] == '1') {
       mw = 'M';
       age = 2019 - (1900 + ((num[0]-48)*10 + (num[1]-48)));
   }
   else if( num[n+1] == '3') {
       mw = 'M';
       age = 2019 - (2000 + ((num[0]-48)*10 + (num[1]-48)));
   }
   else if(num[n+1] == '2') {
       mw = 'W';
       age = 2019 - (1900 + ((num[0]-48)*10 + (num[1]-48)));
   }
   else if(num[n+1] == '4') {
       mw = 'W';
       age = 2019 - (2000 + ((num[0]-48)*10 + (num[1]-48)));
   }
   cout << age+1 << " " << mw;
}

5번에서 제가 작성한 코드인데요. 채점이 Exception.Tostring오류로 아예 채점이 안돼서 직접 In,out 파일을 넣어가며 비교를 해봤는데 오류없이 정답이 잘 나오더라고요. 이 부분 혹시 확인 가능할까요?

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.
이민주님, 5번 채점 파일에서 오류가 발생하는 상황 잘 읽어보았습니다.

코드를 보니 현재 년도를 고정값(2019)으로 설정하셔서 채점 시스템의 현재 년도와 맞지 않을 수 있습니다.
해당 부분을 동적으로 현재 년도를 받아 처리하도록 수정하시면 문제를 해결하실 수 있습니다.

예를 들면, <ctime> 라이브러리를 이용하여 아래와 같이 현재 년도를 가져올 수 있습니다.

#include <ctime>
//...

int currentYear = (int)time(NULL); 
// 현재 연도 계산 로직 추가

그리고 예외 상황(Exception) 처리를 위해 입력 값 범위 등을 재확인하시고, 예외 상황에 대해 핸들링 코드를 추가해 보시는 것도 좋습니다.
만약 문제가 지속된다면, 해당 강의의 ‘질문하기’ 기능을 이용하셔서 강사님께 직접 문의하신 후 대응을 받으시길 권장드립니다.

도움이 필요하시다면 언제든지 질문해 주세요.

이민주님의 프로필 이미지
이민주

작성한 질문수

질문하기