문제1094--차차의 포인터 시뮬레이터

1094: 차차의 포인터 시뮬레이터

실행시간 제한: 1 Sec  메모리사용 제한: 128 MB
제출: 1  통과: 0
[제출] [채점기록] [묻고답하기] [만든사람:]

문제 설명

신입 사원 차차는 포인터에 대해서 이해를 잘 하지 못한채 회사에 입사를 하였다.
회사에 입사 한 후 처음으로 업무를 진행 하고 프로그래밍을 하였다.

하지만 차차가 작업한 코드가 나중에 보니 램 누수가 발생 하고 있다는걸 나중에 알아 챘다.

차차를 위해서 램 누수가 발생하는지 안하는지 알려주는 시뮬레이터를 만들어 주자.

입력 설명

첫번째 줄에는 TestCase가 입력이 된다 TestCase의 숫자는 1부터 10까지 들어온다.

그 이후로는 여러가지의 명령어 규칙이 입력이 된다.
1. Create : 변수를 생성 한다.
 1. 타입이 들어 온다.
  1. 변수 이름이 들어온다.
*ex) Create int hello
*ex) Create int p
*ex) Create string e

2. Assign : 변수에 값을 할당 한다.
 1. 타입이 들어 온다.
  1. 변수 이름이 들어 온다
   1. 값이 들어 온다.
*ex) Assign int hello 30
*ex) Assign int p hello
*ex) Assign int e "hello world"

3. Delete : 변수를 삭제한다.
 1. 변수 이름이 들어 온다.
*ex) Delete hello

4. Print : 변수에 들어가 있는 값을 출력 한다.
 1. 변수 이름이 들어 온다. 
*ex) Print test
결과 : Error
이유 : test란 변수가 없기 때문이다.

*ex) Print p
결과 : Trash
이유 : 원본인 hello가 사라졌기 때문이다.

*ex) Print e
결과 : hello world

출력 설명

1. 변수 생성 (Create)
변수를 Create, 생성을 하다가 같은 이름이 있을 경우는 : Variable name is Already exists
변수의 타입은 총 2가지이다. int와 string 타입이다.
삭제된 경우의 변수는 다시 재 생성 가능 하므로 정상 동작 한다.
기본값은 int형은 0, string형은 "" 빈 문자열로 지정한다.

2. Assign
int는 정수형만 받으며, string은 문자열, " 기준으로 읽는다.
변수를 이용해서 다른 변수를 할당 할 때 타입이 어긋 나면은 : Type Mismatch 라 출력한다.
변수를 이용해서 다른 변수를 할당하게 되면 포인터 개념으로 주소를 연결한 개념이 된다.
삭제된 변수를 할당 하는 경우에는 : Delete Variable 라 출력한다.
존재 하지 않는 변수를 할당 하는 경우에는 : Not Found Variable 라 출력한다.

3. Delete
변수 A와 B를 만들고 A에 30을 할당 한 뒤 B에 A를 할당한 경우 A를 삭제시 B는 삭제 되지 않고 B의 값은 Trash로 기록한다.
A를 삭제 하는 대신 B를 삭제 한다면은 B만 삭제한다.
이미 삭제된 변수는 : Already Delete 라 출력한다.
만들어지지 않은 변수는 : Not Found Variable 이라 출력한다.

4. Print
Delete 한 것을 출력시 Error 로 출력한다.
변수를 만들지 않고 출력 시 마찬가지 Error로 출력한다.
원본이 사라진 것을 가르키는 변수는 Trash로 출력한다.
값을 가지고 있는 변수는 가지고 있는 값을 출력한다.


입력 예시 Copy

1
Create int hello
Create int p
Create string e
Assign int hello 30
Assign int p hello
Assign int e "hello world"
Delete hello
Print test
Print p
Print e

출력 예시 Copy

Error
Trash
hello world

도움

차차도 아직 안풀었다.

출처/분류

차차