citizen   3년 전

스택을 이용해서 한번 접근해보았습니다.

일단 1~90까지의 값들은 해쉬로 미리 저장해두고

100, 1000, 1000000이 값으로 들어올때,

stack의 제일 위에 있는 값을 pop하고 곱한뒤에 

다시 집어넣습니다.(eight hundred일 경우 기존 스택에 8이 들어가 있으므로 8을 제거하고 800을 넣음)

그 외에 값들의 경우 (해쉬에 넣어둔값) 최종값에 더하거나 스택에 새로 집어넣는데,

이 때 최종값에 그냥 더하는 경우는 (eight hundred eleven과 같이) 스택의 제일

위에 있는 값이 1000 미만 일때입니다.(8 -> 800 -> 811과 같이 계산하겠죠)

스택에 새로 집어넣는 경우는 스택이 비어있거나

스택에 있는 값이 1000이상인 경우(one million two hundred는 1000000+2가 아닌 (1000000, 2)가 됩니다)입니다.


반례에 어떤 것이 있을까요?

댓글을 작성하려면 로그인해야 합니다.