퇴근5분전

 

유튜브 둘러보다가...

  https://www.youtube.com/watch?v=BF3FLDAzWxo

 

  : 구글 기술면접(Technical Interview) 재연 

 

이란 제목으로 올라와있는 영상이다.

 

 

해당 문제를 푸는 걸 보고 다른 방법으로 풀어봤다.

 

난 C#으로... 소팅한게 아주 쬐끔 더 느리게 나온다.

 

둘다 글자의 갯수가 다르면 X라고 가정하고

 

            string str_a = "gogole";
            string str_b = "google";  // "googl2";
            string time1 = "";
            string time2 = "";

            System.Diagnostics.Stopwatch sw = new System.Diagnostics.Stopwatch();

 

 

 ## 그냥 떠오르는 생각대로 풀어본것.


            sw.Start();
            char[] chs_a = str_a.ToArray();
            char[] chs_b = str_b.ToArray();
            bool isNotEquals = chs_a.Length == chs_b.Length;

            for (int loop = 0; isNotEquals && loop < chs_a.Length; loop++)
            {
                isNotEquals = false;
                for (int loop2 = 0; loop2 < chs_b.Length; loop2++)
                {
                    if (chs_a[loop] == chs_b[loop2])
                    {
                        chs_b[loop2] = '\0';
                        isNotEquals = true;
                        break;
                    }
                }

                //if (!isNotEquals) break;
            }
            
            if (isNotEquals)
            {
                // 아나그램
               
            }
            sw.Stop();
            time1 = "" + sw.Elapsed;  // 00:00:00.0000436
            sw.Reset();

 

 

 

 

 

## 영상에서처럼 소팅한것.


            sw.Start();
            chs_a = str_a.ToArray();
            chs_b = str_b.ToArray();
            isNotEquals = chs_a.Length == chs_b.Length;
            if (isNotEquals)
            {
                Array.Sort(chs_a);
                Array.Sort(chs_b);
                if (new string(chs_a) == new string(chs_b))
                {
                    // 아나그램
                }
            }

            sw.Stop();
            time2 = "" + sw.Elapsed;  // 00:00:00.0002216
            sw.Reset();

 

 

음 심심해서 풀어봤다. 

 

머리속에서 영상을 볼때는 각 char 값을 다 더해서 비교해보면 어떨까 했는데...  ( 댓글을 보니 구성이 달라도 같을수도 있다고 해서..  그럴것 같아서... 패스 )

 

그래서 다시 잠시 생각해보니 이중for문으로 비교하여 같은것은 제거하면...

 

만약 글자수가 다른 경우 아래가 더 빠르네?

 

 

 

디자이너도.. 딱히 손델게 없고,,, 개발할것도 머리에 안떠오르고....

 

다음 플젝 구해야되는데... 막막하네... 업무를 하나 꾀찼어야 하나...

 

회계는 역시 어렵겠지... 오만가지 생각으로 머리가 복잡하네..