본문 바로가기

Java2

[Java] 백준 2143: 두 배열의 합 https://www.acmicpc.net/problem/2143 문제 분석A, B 두 배열에서 각각 부배열을 하나씩 선택해서 두 부배열의 합이 T가 되는 경우의 수를 구하기예제: A = [1, 3, 1, 2], B = [1, 3, 2], T = 5 → 답: 7 먼저 A, B 배열에 대한 누적합 배열 SumA, SumB 를 만들었다A = [1, 3, 1, 2]SumA[0] = A[0] = 1SumA[1] = SumA[0] + A[1] = 1 + 3 = 4SumA[2] = SumA[1] + A[2] = 4(1 + 3) + 1 = 5SumA[3] = SumA[2] + A[3] = 5(1 + 3 + 1) + 2 = 7결과: SumA = [1, 4, 5, 7]이렇게 해두면 부배열 A[i ~ j]의 합 = S.. 2025. 9. 25.
객체 지향 프로그래밍 (OOP, Object Oriented Programming) 개발 공부를 하다 보니 '객체 지향적으로 설계하라'는 말을 자주 듣게 되는데, 이게 뭔지 확실히 정리해보려고 한다. 객체 지향 프로그래밍(OOP)의 기본 개념이랑 특징에 대해 알아보자. 객체 지향 프로그래밍이란?객체 지향 프로그래밍은 현실 세계의 사물이나 개념을 '객체(Object)'라는 단위로 모델링해서 프로그램을 구성하는 방식이다. 각 객체는 자신만의 상태(데이터)와 행동(메서드)을 갖고, 이 객체들이 서로 메시지를 주고받으며 협력하는 방식으로 프로그램이 돌아간다. 예를 들어, 커피숍 주문 시스템을 만든다고 생각해보자'고객' 객체: 이름, 포인트 같은 정보와 '주문하기' 같은 행동을 가짐'메뉴' 객체: 음료 종류, 가격 정보와 '항목 추가/삭제' 같은 행동을 가짐'주문' 객체: 주문 항목, 총액 정보.. 2025. 3. 24.