알고리즘

<SWEA> 8556-북북서

koyuchang 2020. 8. 19. 14:40

<풀이>

west일때와 north일때와 다른 연산을 해주어야 하고, 연산에서 소숫점이 발생하면(실수) 나중에 소수점이 사라질때 까지 X2를 해주는것이 핵심이다.

Ex) 'northnorthwest'일 경우,

1. west: west는 90도 이므로 ans에 90이 들어간다.(ans=90)

2. northwest:  그 다음 단어는 north이므로 90/2^1를 빼준다.(ans=45)

3. northnorthwest: 그 다음 단어는 north 이므로 90/2^2를 빼준다.(ans=22.5)

 

여기까지 연산을 끝낸 후 ans를 살펴보면 소숫점이 있는 실수라는 것을 알 수 있다. 이제 ans가 정수가 될때까지 X2를 해준다. 그리고 X2를 해준만큼 k변수에도 X2를 해준다.

ans는 45가 되고 한번 X2를 해주었으므로 k=2가 된다. 그래서 결과값은 45/2라는 것을 알 수 있다.