Today I Learned

최지웅·2024년 8월 19일
0

Today I Learned

목록 보기
188/238

오늘 할일
1. LeetCode 조금이라도

오늘 한일

    1. Evaluate Division 문제를 먼저 이해해보자. 입력으로 equations, values, queries 3개의 인자를 받는다. values[i]의 값은 equations[i]의 원소를 나눈 Ai/Bi값이다. 결과로 반환해야하는 값은 queries의 결과인데, 답을 낼 수 없는 경우에는 -1.0을 반환하면 된다.
      이때, divisoin by zeros은 없게끔 입력을 준다.

예시를 기반으로 이해해보자. 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을 리턴하게끔 접근해보려한다.

profile
이제 3학년..

0개의 댓글