음... 딱히 할게 없어서..
유튜브 둘러보다가...
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문으로 비교하여 같은것은 제거하면...
만약 글자수가 다른 경우 아래가 더 빠르네?
디자이너도.. 딱히 손델게 없고,,, 개발할것도 머리에 안떠오르고....
다음 플젝 구해야되는데... 막막하네... 업무를 하나 꾀찼어야 하나...
회계는 역시 어렵겠지... 오만가지 생각으로 머리가 복잡하네..
'--- 취미 > 생각하기' 카테고리의 다른 글
메이플 바뀐 정책으로 시끄럽네... (0) | 2018.10.16 |
---|---|
OKKY에 갔더니 알고리즘... (0) | 2018.09.22 |
음... ] 시간이 ... 아까워... (0) | 2018.09.12 |
다음 프로젝트... (0) | 2018.09.01 |
티스토리랑 다음이랑 끊겼네?? (0) | 2018.08.30 |