[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)
#객체지향은대규모프로그램설계를위함 #데이터와함수의집합 #의존 #상속
★객체지향 프로그래밍의 특징★
객체지향 설계원칙 (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."
참고사이트
노션자료_객체지향 프로그래밍