실수 파싱하기

면접 대비

시간 제한1초메모리 제한128 MB

요약
T개의 줄에 대해 부호, 소수점, 지수를 포함한 실수 표기법을 만족하는지 판별하는 문제다. 앞뒤 공백은 허용한다.
난이도

보통10점 중 4점

유형
문자열, 구현, 시뮬레이션, 문자열 매칭
정답자
아직 제출이 없습니다

문제

입력으로 주어진 한 줄이 올바른 실수(real number)를 나타내는지 판별하는 프로그램을 작성하세요.

실수는 소수점, 지수부(문자 e 또는 E로 시작), 또는 둘 다를 가질 수 있으며, 여기에 일반적인 십진 숫자로 이루어집니다. 규칙은 다음과 같습니다.

  • 소수점이 있다면, 소수점의 양쪽에 각각 최소 한 개 이상의 숫자가 있어야 합니다.
  • 숫자 앞과 지수부 앞에는 각각 부호(+ 또는 -)가 올 수 있으며, 부호 바로 뒤에는 공백이 올 수 없습니다.
  • 지수부가 있다면 정수여야 하며 소수점을 포함할 수 없습니다.
  • 수의 앞이나 뒤에는 공백 문자가 올 수 있지만, 수 내부에는 공백이 올 수 없습니다.

수의 크기에는 제한이 없지만, 편의상 각 입력 줄의 길이는 최대 1000자라고 가정해도 됩니다.

입력

첫째 줄에 테스트 케이스의 개수 TT가 주어집니다. 이어지는 TT개의 줄에는 각각 검사할 입력 한 줄이 주어집니다.

출력

각 테스트 케이스마다 한 줄씩 출력합니다. 해당 줄이 올바른 실수이면 LEGAL을, 그렇지 않으면 ILLEGAL을 출력합니다.

예제1

  1. 예제 1

    입력
    2
      1.5e+2
    3.
    
    예상 출력
    LEGAL
    ILLEGAL