<aside> 💡 Notion 팁: 새 페이지를 만들고 템플릿 목록에서 데일리 일기를 선택해 매일 아래 양식을 자동으로 생성할 수 있어요.

</aside>

오늘은 무엇을 배웠나요

  1. 알고리즘 코드카타
  2. 최종 팀 과제

이야깃거리

using System;
using System.Collections.Generic;
using System.Linq;

public class Solution {
    public int solution(int[] elements) {
        int answer = 0;
        HashSet<int> answerSet = new HashSet<int>();

        for (int i = 1; i <= elements.Length; i++) {
            for (int j = 0; j < elements.Length; j++) {
                int sum = 0;
                for (int k = 0; k < i; k++) {
                    if (j + k > elements.Length - 1)
                        sum += elements[j + k - elements.Length];
                    else
                        sum += elements[j + k];                    
                }
                answerSet.Add(sum);                
            }            
        }
        answer = answerSet.Count;
        return answer;
    }
}

연속 부분 수열 합의 개수 문제를 3중 for문으로 풀었더니 시간 초과가 안 난게 이상할 정도로(…) 실행 시간이 꽤 걸린다.

hashset을 사용하지 않았더라면 시간 초과 났을 듯 ,,

<aside> 🔢 22. 오버로딩과 오버라이딩의 차이점을 설명해주세요.

메서드 오버라이딩과 메서드 오버로딩은 객체 지향의 특징 중 하나인 다형성의 대표적인 예시입니다. 객체 지향에서의 다형성도 이와 비슷합니다. 다형성이란 어떤 객체의 속성이나 기능이 그 맥락에 따라 다른 역할을 수행할 수 있는 특성입니다.

메서드 오버라이딩은 부모 클래스로부터 상속받은 메소드를 자식 클래스에서 재정의하는 것을 의미합니다. 상속받은 메소드를 그대로 사용할 수도 있지만, 자식 클래스에서 상황에 맞게 변경해야하는 경우 오버라이딩할 필요가 생깁니다. 이 경우 같은 이름의 메서드를 각각의 클래스의 맥락에 맞게 재정의하여 사용할 수 있습니다. 메서드의 이름이 서로 같고, 매개변수가 같고, 반환형이 같을 경우에 상속받은 메서드를 덮어쓴다고 생각하면 됩니다.

메서드 오버로딩은 하나의 클래스 내에서 같은 이름의 메서드를 여러 개 중복하여 정의하는 것을 의미합니다. 이 때 매개변수의 유형과 개수를 다르게 하여 다양한 유형의 호출에 응답할 수 있게 됩니다.

</aside>

Untitled

MinimapCamera의 position.y값을 30에서 100으로 늘리고,