오늘 할일
1. LeetCode 조금이라도
오늘 한일
예시를 기반으로 이해해보자. a/b=2 b/c=3이면 a=6c이다. 고로 쿼리 a, c에 대한 답은 6이다. 연립방정식 문제임을 알 수 있다. 다만 이때 입력으로 "a"가 아닌 "ab"가 올 수 있다. 예를 들면 bc/cd=5이면 b=5d 이런식으로 입력이 될 수 있다.
이전에 컴퓨터 논리? 이런 시간에 연립방정식을 해결하는 공식이 있음이 어렴풋이 기억나지만, 이 문제의 경우 미지수의 개수가 정해져 있기 때문에 적용하기 어려울 것이라 판단했다. 가장 쉬운 방법은 i번째의 equation과 value의 정보를 저장할 때 Ai=values[i]*Bi꼴과 Bi=Ai/values[i]꼴로 적용하여 배열을 구성하여 모든 값에 대한 lookup table같은 것을 만드는 것이다. 이때 하나의 값이 "abc"같은 경우도 존재하기에 해당 경우 .split을 수행하여 각각의 값들을 저장하면 될 듯 하다. 그리고 저장 시 같은 문자를 없애면 존재하는 모든 a= real number꼴의 관계를 저장할 수 있다.
최종적으로 queries를 계산할 때 해당하는 값에 저장된 모든 관계를 대입해보며 딱 나누어떨어지면 그 값을, 계산이 안되면 -1을 리턴하게끔 접근해보려한다.