6676번 - Inglish-Number Translator
스택을 이용해서 한번 접근해보았습니다.
일단 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)가 됩니다)입니다.
반례에 어떤 것이 있을까요?
댓글을 작성하려면 로그인해야 합니다.
citizen 7년 전
스택을 이용해서 한번 접근해보았습니다.
일단 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)가 됩니다)입니다.
반례에 어떤 것이 있을까요?