해당 글은 항해99 클럽 코딩테스트 스터디에서 진행된 17일차(20241113) 비기너 문제에 대한
TIL(Today I Learned) 내용입니다.
문제 출처) https://www.acmicpc.net/problem/25497
이 문제에서 주목해야할 부분은 다음과 같다.
조건1) 나의 사전 기술은 하나의 본 기술과만 연계해서 사용 가능하다.
조건2) 연계할 사전 기술 없이 본 기술을 사용했을 경우, 이후 사용하는 기술들이 정상적으로 발동되지 않는다.
조건3) 반드시 사전 기술을 사용한 직후에 본 기술을 사용할 필요는 없다.
(중간에 다른 기술을 사용하여도 연계는 정상적으로 이루어진다.)
조건1) "나의 사전 기술은 하나의 본 기술과만 연계해서 사용 가능하다." 해석
사전 기술 과 본기술은 세트이다!
-> 즉, 사전기술 사용을 기억해뒀다가, 후에 본기술 나오면 기억에서 제거하면서 answer++을 한다.
-> Stack()과 pop()을 활용하면 좋다.
즉, 사전기술이 나오면 이에 대해서 기억하고 있어야한다!
조건2) "연계할 사전 기술 없이 본 기술을 사용했을 경우, 이후 사용하는 기술들이 정상적으로 발동되지 않는다." 해석
기술 연계 실패시, 이후는 정상 발동이 안된다했으므로 그 순간 종료해야 한다.
이에 대해서는 반복문에서 해당조건일 때 break를 사용하면 된다.
조건3) "반드시 사전 기술을 사용한 직후에 본 기술을 사용할 필요는 없다." 해석
결국, 사전 기술은 다른 기술들의 중간에 존재해도 괜찮다! 그저 있었다고 기억만 하면 된다.
-> 스킬 L과 스킬 S 간 순서는 중요하지 않다.
-> 스킬 L, S 사용에 대한 것(Stack사용예정)은 각각 따로 관리해도 괜찮다.
중요한 것은, 본 기술이 있다면 그 이전에 그와 대응하는 사전기술을 사용했어야 한다.
참고 사항