ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2024.1.17
    TIL 2024. 1. 17. 20:53

     

    하샤드 수

     

    public bool solution(int x) {
            bool answer = true;
            string str = x.ToString();
            int[] number = new int[str.Length];
            int sum = 0;
            for(int i = 0; i < str.Length; i++){
                number[i] = int.Parse(str[i].ToString());
                sum += number[i];
            }
            if (x%sum == 0) answer = true;
            else answer=false;
            return answer;
        }

    어제 본 코드카타에서 사용했던 것을 사용해서 만들어봤습니다.

    잘 사용되서 기분이가 좋습니다. 굿


     

    두 정수 사이의 합

     

            while (a != b)
            {
                answer += a;
                a = (a > b) ? a - 1 : a + 1;
            }
    
            return answer + b;

    우선 제가 한 코드는 아닙니다.

    보고 되게 짧고 깔끔하게 적힌 코드라서 가져와봤습니다.

    a와 b의 크기 차이에 따라서 +1를 어느 변수에 넣어줘야할지가 결정이 됩니다.

    근데 이 생각을 뒤집듯 a가 크면 -1를 a가 작으면 +1를 해줘서 이 고민을 깔끔하게 해결하는 코드입니다.

    생각 못했던 방식이라서 이렇게?! 라고 생각이 들었습니다.

     


     

    콜라츠 추측

     

    public int solution(int num) {
            int answer = 0;
            if (num != 1){
                int count = 0;
                while(true){
                    if(num%2 ==0){
                        num /= 2;
                    }
                    else if (num%2 ==1) num = num * 3 + 1;
                    count++;
                    if(num == 1) return count;
                    if(count >= 500) return -1;
                }
            }
            return answer;
        }

    코드 자체는 크게 문제가 없었지만 매개변수가 int의 범위를 벗어나서 들어오게 된다면 중간에 오버플로우가 발생하게됩니다.

    이때 if(num%2 == 0) else로 하게 된다면  count가 정상적으로 올라가지 않아서 정확한 값이 나오지 않습니다.

    따라서 else if(num%2==1)을 해줘야지 정확한 값이 나오게 됩니다.

    int의 범위를 아는 것이 중요해보였습니다.

     


     

    서울에서 김서방 찾기

     

    answer = Array.FindIndex(seoul, i => i == "Kim");

    이것도 제가 쓴 코드는 아니지만 배열 함수를 이용해서 하는 것이기 때문에 가져와봤습니다.

    사실 배열에서 원하는 값의 인덱스를 찾는 함수가 있다는 것은 알고 있었는데 찾지 못해서 for문을 이용해서 했었습니다.

    근데 다른 분이 한 코드에서 있어서 가져와보았습니다.

     


     

    오늘은 코드카타를 끝내고 발표준비 후에 발표가 있었습니다.

    발표 후 피드백에서는 두가지로 첫번째로 interface를 사용했던 부분에서 interface에 있는 함수가 아닌 변수를 주로 사용할 경우에는 class로 만들어서 상속받는 것이 더 좋다. 와 아이템 스펙을 만드는 class에서 딕셔너리를 이용해서 저장해줬는데 그 class를 사용하는 법에 대해서 좀 더 좋게 만들 수 있는 피드백을 들었습니다.

    그러고 나서 간단한 게임과 좋은 개발자에 대한 강의를 들었습니다.

    큰일이 없었던 하루입니다.

    대신 내일은 새로운 팀원분들을 만나서 새로운 프로젝트를 하는 날입니다.

    잘 맞으시는 분들을 만나서 잘 진행되었으면 좋겠습니다.

    'TIL' 카테고리의 다른 글

    2024.1.19  (0) 2024.01.19
    2024.1.18  (0) 2024.01.18
    2024.1.16  (0) 2024.01.16
    2024.1.15  (0) 2024.01.15
    2024.1.12  (2) 2024.01.12
Designed by Tistory.