퇴근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#으로 풀어봄.

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

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

댓글0

 

유튜브 둘러보다가...

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

 

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

 

 

 

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

 

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

 

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

 

 

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

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

댓글0

 

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

 

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

 

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

 

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

 

 

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

 

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

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

 

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

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

 

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

 

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

 

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

 

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

 

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

이걸 밖으로 꺼내면???

 

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

 

 

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

댓글0

티스토리 툴바