퇴근5분전

https://okky.kr/article/505235

 

문제)

{10, 20, 20, 10, 10, 30 ,50, 10, 20};


위와 같은 배열에 한 쌍씩 짝을 지어서 남은 숫자의 개수를 세는 문제입니다.


ex)

쌍이 존재

10   10

20   20

10  10 


쌍이 존재하지 않음

30

50

20



답 : 3

 

 

풀이)

            int[] nums = { 10, 20, 20, 10, 10, 30, 50, 10, 20 };
            
            List<int> findedList = new List<int>();

            for (int loop = 0; loop < nums.Length; loop++)
            {
                if (findedList.Contains(nums[loop]))
                {
                    findedList.Remove(nums[loop]);
                }
                else
                {
                    findedList.Add(nums[loop]);
                }
            }

            int cnt = findedList.Count;

 

음 난 c#으로 풀어봄.

 

유튜브 둘러보다가...

  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문으로 비교하여 같은것은 제거하면...

 

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

 

 

 

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

 

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

 

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

 

 

 

 음. 이번 플젝이 드디어 어제부로 끝났다.

 

은행이라 보안관련 문제로 내가 만들어 사용하던 프로그램 모두 가져가 사용할 수 없었다.

 

가장 간단한 파일백업 바로가기 만 소스코드를 핸펀에 담아 가져가서 사용했다.

 

매일 매일 일정 관린하는 파일에 대한 일일 백업을 하려고 만들었었다.

 

 

플젝 끝내고 몇일간 다음 플젝까지 무얼 할까????? 고민을 많이 해봤는데...

 

1. 이번 플젝의 플로우 처리와 관련된 기술을 그대로 따라해서 뭘 만들어볼까?

   결론 : 써먹을데가 없다. ATM을 만들면 모를까...

 

2. 지난 큐브코아에 계신 부장님이 필요하다던 C#으로 만든 UI 메인 프로그램을 공통으로 만들어볼까?

   결론 : 안갈거니까. 이것도 딱히... 필요없겠네.

 

쭉 고민해보다가 디자이너! 이걸 보기좋게 바꿀수 없을까?

 

NPT 프로그램을 업글을 하려면 어떻게 해야 할까?

 

===================================================================================

 

 요거를... 컨트롤을 좀 더 보기좋게?? 음... 딱히 나쁜것도 아닌데...

 

그러면... [변환] 버튼의 기능이 지금은 같은 프로젝트로 소스코드를 변환하는 처리가 같이 담겨 있는데

이걸 밖으로 꺼내면???

 

 이것도 소스를 다시 살펴보니.. 1월에 굿센꺼 준비하면서 이미 파일로는 모두 분리해놨었네..  플러그인처럼 dll로 별도로 빼버리면...

 

 

 뭘 하지..  음... 개발할 내용이 이것도 아닌 것 같네!

 

 음... 3일 휴가로 인해 머리속에 뭔가 만들게 하나 있긴한데... 나중일이고...

 

더 개발에 필요한 유틸을 만들일이 없어지니까... 시간이 너무 많이 비어버리네...

 

운동을 해야겠지??? 몸이 쉽게 안움직이네... 운동할때마다 어깨와 목이 무리가 오니까 자꾸 멈췄더니...

 

 

서점가서 책들 둘러봐야 하는데... 닷넷책은 이미 씨가 말랐을거고...

 

코웍스페이스 1달 결제를 해볼까나... 한달이면 만들겠지? ... 한달 안걸릴것 같긴한데...

 

 

 다음 일 구하면서 고민해봐야지.. 내일, 모레나가면 플젝이 끝나버리니까...

 

추석지나서 어떻게 할지 고민해봐야겠네.

 

 

-----------------------------------------------------------------------------------------

오키를 눈팅하다가....

 

https://okky.kr/article/501782

 

내용인즉 같이 일하는 차장한테 일 시키려다가 꾸사리 먹고 글 싸질렀나본데...

 

댓글들은 글쓴이 옹호하고 같이 일하는 차장은 쓰레기를 만들어놨네...

 

그 사람도 개발자라면 오키글을 봤을지도 모르는데... 괜찮은가?

 

지가 하던일을 왜??? 옆사람까지 끌어들이는걸까?  골때린 사람이네...

 

그러다 다음날 폭발해서 욕먹었었다고 써놨는데 내가 추측하기엔 담날도 옆에서 찔렀으니 폭발했을 것 같은데...

 

 

글 읽다가 양XX 대리 쓰레기가 떠올랐어... 퉷.

 

 

'--- 취미 > 생각하기' 카테고리의 다른 글

OKKY에 갔더니 알고리즘...  (0) 2018.09.22
음... 딱히 할게 없어서..  (0) 2018.09.20
다음 프로젝트...  (0) 2018.09.01
티스토리랑 다음이랑 끊겼네??  (0) 2018.08.30
오늘도 빡치는 월요일...  (0) 2018.07.30

 

 이번 프로젝트로 마무리되고 새 프로젝트를 구해야 하는데... 그 부장님이 오라고 하는데는

 

하필 큐브?? ... 반나절만에 때려친 곳인데 어떻게 다시 가겠어.

 

그냥 사양하는 것으로... 새로 일 구해야지...