TIL_231127

Z_제트·2023년 11월 27일
0

TODAY I LEARNED

목록 보기
21/88
post-thumbnail

to do_오늘 할 일

  • 알고리즘 문제풀기
  • unity 강의 듣기

retro_오늘 한 일(회고)

[problem solved] 알고리즘 문제풀기 - 나머지가 1이 되는 수 찾기 에 대하여

using System;

public class Solution {
    public int solution(int n) {
        int answer = 0;
        
        if (n >= 3 && n <= 1000000)
        {
            for (int x = 1; x < n; x++)
            {
                if (n % x == 1)
                {
                    answer = x;
                    break;
                }
            }
        }
        return answer;
    }
}


이야...
break; 하나면 이렇게 쉽게 해결되는걸
break 를 사용해야겠다는 생각을 아예 못해서
거의 뭐 3시간 동안 이 문제랑 싸운 것 같다.
break 는 이제 절대 까먹을 일이 없을 것 같다 ^_^ 오히려 좋..아...


[MEMO] 객체지향 프로그래밍 세션


객체지향 프로그래밍 Object-Oriented Programming(OOP)


#객체지향은대규모프로그램설계를위함 #데이터와함수의집합 #의존 #상속

  • 객체지향 프로그래밍의 특징

    • 추상화(Abstraction)
    • 상속(Inheritance)
    • 다형성(Polymorphism)
    • 캡슐화(Encapsulation)
      외부에서 데이터를 쉽게 접근하지 못하도록 !
  • 객체지향 설계원칙 (SOLID 원칙)

    • SRP(Single Responsibility Principle) 단일책임의 원칙
      하나의 클래스는 담당할 수 있는 최소한의 책임만 갖도록

    • OCP(Open Closed Principle) 개방폐쇄의 원칙
      확장 → 개방적, 수정 → 폐쇄적

    • LSP(Liskov Substitution Principle) 리스코프 치환 법칙
      상속의 부모, 자식 관계를 잘 설정해야 한다
      노션자료 참고하면서 추가적으로 공부하자 !

      *프로그램의 정확성을 깨지 않으면서 하위 타입의 인스턴스(객체)로 변환
      *하위클래스는 인터페이스의 규약을 잘 지켜야 한다.
      *자식 객체는 부모 객체를 완전히 대체할 수 있어야 한다.


      "(object-oriented programming) A principle stating that any type having a subtype should be replaceable by its subtype without altering any of the desirable properties (such as correctness, task performed, etc.) of the program."
      참고사이트

    • ISP(Interface Segregation Principle) 인터페이스 분리 원칙
      큰 하나의 인터페이스보다는 여러 개의 인터페이스로 분리할 것

    • DIP(Dependency Inversion Principle) 의존관계 역전 원칙
      노션자료 참고하면서 추가적으로 공부하자 !
      특히 이 친구는 한국어 설명도 영어 설명도 못 알아듣겠다..
      튜터님께서 DIP 는 논란이 있는 친구라는 설명밖에 기억이 안 난다 하핫


      *구체화가 아니라 인터페이스에 의존하라.
      *구현 클래스(구현체)가 아니라 인터페이스(역할)에 의존하라.


      "(object-oriented programming) Design principle that states that (1) High- and low-level modules should both depend on abstractions and (2) instead of abstractions depending upon details, details should depend upon abstractions."
      참고사이트


      노션자료_객체지향 프로그래밍


profile
trying to make the world a better place with a cool head and warm heart

0개의 댓글