리스트에서 중복되는 숫자의 인덱스 차이가 k보다 작으면 true, 크다면 false를 반환한다.
two-sum 문제와 비슷하게 접근하면 된다고 생각했다.
우선 dictionary를 사용하여 key에는 값, value에는 인덱스를 저장한다.
중복되는 값이 2개라면 첫번째 인덱스는 파이썬의 내장 함수를 사용하고,
두번째 인덱스는 dict에 저장되어 있는 값을 사용하여 차이를 구하면 된다.
하지만 중복되는 값이 2개 이상이라면
중간 숫자의 인덱스가 빠지기 때문에 차이가 커지고 False가 반환된다.
그래서 return False의 위치를 for문이 끝나는 지점으로 바꿔주어서
for문이 끝날때 까지 조건을 만족하지 않으면 false 반환으로 해주면 된다.
(위의 생각을 하지 못해서 계속 고민..)
하지만 이 코드는 무조건 마지막 데이터의 인덱스가 dict에 저장되기 때문에
중간에 조건을 만족하는 데이터가 있으면 True가 반환되지 않는다.
다른 블로그의 풀이를 확인해 보니 처음부터 dict를 만들지 않고,
for문을 돌면서 만드는 방법을 사용한다.
dict를 만들어가는데 주의해야할 점은 인덱스 차이 조건을 만족하지 않으면
my_dict의 인덱스 값을 갱신해주어야한다.