하석재 강사님
객체지향의 포인트
- 캡슐화(디버깅의 해결책) / 상속(코드재활용)
컴포넌트
- 코드 없이 재활용
- MS COM / Sun(오라클) JavaBeans
JavaBeans를 잘 알아야해요
컴파일이 되면 재활용이 가능한 구조가 된다.
컴포넌트의 제약
깔아야한다.
안깔고 원격에서 호출 안되나?
=> 분산 컴포넌트 등장
분산컴포넌트기술
- 원격호출 / 오브젝트(컴포넌트) 다운로드
- Directory Service
- MS DCOM(Distributed COM) / Java EJB(Enterprise JavaBeans) -> Spring Bean
DI(Dependency Injection)
- 객체지향 개념이 발달해서 DI가 나옴
- Angular(Front-end) / Spring(Back-end)
POJO(Plain Old Java Object) = object oriented
스프링 삼각형
POJO를 설명하기 위한 방법론 3가지
1. IoC / DI
2. AOP
3. PSA
1. 다중상속 - C++ / Python
2. 단일상속 - JAVA / C#
추상클래스 vs 인터페이스
SOLID
- 단일 책임의 원칙
- 개방 폐쇄의 원칙
- 리스코프 치환 원칙
- 인터페이스 분리 원칙
- 의존성 역전의 원칙
프로그래머스 - 프론트엔드 미니 데브코스
명령형 프로그래밍과 선언적 프로그래밍 방식의 이해
명령형 프로그래밍
- 컴퓨터가 수행할 명령들을 순서대로 써 놓은 것
- 어떻게 처리하는지에 대한 묘사
선언형 프로그래밍
- 무엇을 원하는지에 대한 묘사
- HTML, SQL


코딩테스트 - 공장 색칠
n = int(input())
costs = []
for i in range(n):
s = list(map(int, input().split(" ")))
costs.append(s)
for i in range(1, n):
for j in range(0, 3):
if j == 0:
costs[i][j] += min(costs[i - 1][1], costs[i - 1][2])
elif j == 1:
costs[i][j] += min(costs[i - 1][0], costs[i - 1][2])
else:
costs[i][j] += min(costs[i - 1][0], costs[i - 1][1])
print(min(costs[n - 1]))
처음에는 dfs로 풀었는데, 입출력 조건에서 n의 범위가 0 < n < 10000이라서
너무 많은 함수 호출로 런타임 에러가 발생했다.
현재 상태를 이용해 다음 값을 구할 수 있는 DP 알고리즘이 적당하다고 생각해 DP로 풀었더니 맞았다.
'SW Academy' 카테고리의 다른 글
[CNU SW Academy] 18일차(22.12.26) (0) | 2022.12.26 |
---|---|
[CNU SW Academy] 16일차(22.12.22) (0) | 2022.12.25 |
[CNU SW Academy] 코딩테스트 가이드 (0) | 2022.12.23 |
[CNU SW Academy] 15일차(22.12.21) (0) | 2022.12.23 |
[CNU SW Academy] 14일차(22.12.20) (0) | 2022.12.23 |