Softeer Level3: [HSAT 7회 정기 코딩 인증평가 기출] 자동차 테스트 (구현 / with Python)
문제를 풀수록 HSAT 문제들이 알차게 구성되어있다는 것을 느꼈다.. 5만개의 숫자가 들어오고, 쿼리는 20만개까지 들어올 수 있으므로, 편하게 로직을 짜면 바로 시간초과가 날 것 같았다. 쿼리에서 어떤 숫자가 주어지면, 해당 숫자가 data 배열에서 몇 번째에 있는지 바로바로 알아낼 수 있어야한다. data.index(찾아야 할 수) 와 같은 연산을 매 번 반복하면 시간초과가 나게 된다. 따라서 dictionary 형태로 구성하여 key는 우리가 찾는 수, value는 (그 숫자 앞에 있는 숫자의 갯수, 그 숫자 뒤에 있는 숫자 갯수) 로 구성하여 쿼리에서 곱셈만 해서 print하면 되도록 HASH를 미리 구성해두는 것이 핵심이다.
Python알고리즘
2023. 10. 2. 14:49