전체 글 (16) 썸네일형 리스트형 01.04 인터페이스 설계 ▼ 다형성, SOLID 개념 요약더보기객체 지향 프로그래밍프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프트웨에 개발에 많이 사용됨다형성, SOLID 이 두 가지를 지키는게 OOP! 다형성다형성 실세계 비유: 역할과 구현으로 세상을 구분역할: 인터페이스 / 인터페이스가 무조건 먼저 정의되어야 함구현: 인터페이스 상속받은 객체 / 정의된 인터페이스 상속받아서 오버라이딩다형성 = 역할(인터페이스) + 구현(객체) → 역할과 구현을 분리함으로서 유연하고 변경이 용이하게 하는 목적! SOLID: 좋은 객체 지향 설계의 5가지 원칙SRP: 단일 책임 원칙 (single responsibility principle) 나는 내 일만 한다!한 클래스는 하나의 책임(기능/일)만 가져야 한다.책임? 모호하다.. 분해합 분해합문제 이해접근 방법N에 작은 수를 대입하여 규칙 찾아보려 했음. 1~30까지 대입했지만 규칙성 못 찾음. → 일단 1부터 N까지 분해합 하나씩 구하는 코드 작성해보자.String으로 입력 받고, 문자열 길이 이용해서 반복문으로 한 자리씩 인덱스에 담는 것까지 해서 코드 작성해 봄.원하는 결과가 나오지 않음.(아래 코드 참고)import java.util.Scanner;import java.util.Arrays;public class Dividesum { static int[] arr; static int sum = 0; public static void main(String[] args){ Scanner scanner = new Scanner(System.in); String s = scann.. 기능 모듈화 목차 참고: Figma1. 화면별 기능/역할홈 화면 (Frame1, Frame2)Frame1: 폴더 내용이 큰 네모 형태로 표시됨 (카드 뷰).Frame2: 폴더 내용이 목록 형태로 표시됨 (리스트 뷰).기능:뷰 전환: 카드 뷰 ↔ 리스트 뷰 전환 가능.폴더 접근: 특정 폴더 선택 시 세부 화면(Frame5, Frame6)으로 이동.검색: 폴더 이름으로 검색 가능.설정 접근: 오른쪽 상단 설정 아이콘을 통해 설정 화면으로 이동.+ 아이콘: 하단 "+" 버튼으로 파일 또는 메모 추가 선택 가능.하단 바 (총 5개 아이콘):홈 화면 이동태그 관리 화면 (태그 확인/편집)캘린더 화면알람 설정 화면 (알람 추가/편집)사용자 프로필 화면메모 뷰 (Frame5, Frame6)Frame5: 메모가 큰 네모 형태로 .. 블랙잭 블랙잭 1. 문제 이해 2. 접근 과정N에 작은 수부터 대입하면서 규칙성 있나 확인해봄.N개의 카드 중 3개를 중복되지 않게 뽑는 방법: 경우의 수 '조합(Combination)'조합을 구현하는 건 복잡할 것 같아서 'N개의 카드 중 3개를 중복되지 않게 뽑는' 다른 방법 생각해봄.N에 작은 수 대입하면서 '인덱스'를 기준으로 이해해봄.첫 번째 카드 뽑는 것은 고정으로 하고, 두 번째와 세번째 카드를 뽑을 때 어떤 규칙성이 있나세 번째 카드의 인덱스는 'N-1'이 되어야 하는 것을 발견함.(그러면서 자연스럽게) 두 번째 카드의 인덱스는 'N-2'가 되어야 하는 것을 발견함. ** 결론: 첫 번째 카드 인덱스 'N-3', 두 번째 카드 인덱스 'N-2', 세 번째 카드 인덱스 'N-3' 3. 코드 구현.. 피보나치 1. 문제 설명 (피보나치 수)문제피보나치 수는 0과 1로 시작함. (0번째 피보나치 수는 0, 1번째 피보나치 수는 1임.)그 다음 2번째부터는 바로 앞 두 피보나치 수의 합이 됨.이를 식으로 나타내면 Fn = Fn-1 + Fn-2 (n ≥ 2)n이 주어졌을 때, n번째 피보나치 수를 구하는 프로그램 작성.입력: 첫째 줄에 n 입력 (n은 45보다 작거나 같은 자연수).출력: 첫째 줄에 n번째 피보나치 수 출력2. 접근 방법사고 과정(Tip1)재귀함수의 기능을 한글로 정의: n번째 피보나치 수를 구하는 함수(Tip2)재귀함수에 들어갈 매개변수: n(Tip3)base case 설정: n==0 && n==1인 경우(Tip4)문제 분할(Tip5)검증 단계3. 코드 구현재귀함수 사용 (백준: 시간초과 뜸)im.. 하노이 탑 재귀 함수 & 하노이 탑*혼자서 생각한 것더보기1. 하노이 탑 문제 이해 (백준 1914)1.1 입력과 출력이 어떻게 나오는지 이해하기 전, 하노이 탑 문제에 대한 기본적인 이해부터 함.아래와 같이 그림을 그리면서 이해함. * 1 → (3)이 의미하는 바: 원판 1이 장대 3으로 이동. 1.2 문제에서 제시한 입력과 출력에 초점을 맞춰서 다시 이해한 번에 한 개의 원판만을 다른 탑으로 옮길 수 있음.쌓아 놓은 원판은 항상 위의 것이 아래의 것보다 작아야 함.이 작업을 수행하는데 필요한 이동 순서를 출력하는 프로그램 작성. (단, 이동 횟수는 최소가 되어야 함.)입력: 첫 번째 줄에 첫 번째 장대에 쌓인 원판의 개수 N (1 출력: 첫 번째 줄에 옮긴 횟수 K를 출력. N A번째 탑의 가장 위에 있는 원.. WAS vs 웹서버 웹서버 사전적 정의: 웹 브라우저 클라이언트로부터 HTTP 요청을 받아들이고 HTML 문서와 같은 웹 페이지를 반환하는 컴퓨터 프로그램 한 마디로, 웹서버는 정적 HTML(정적 컨텐츠)이라고도 할 수 있음. 여기서 정적 컨텐츠란 단순 HTML 문서, CSS, javascript 등 즉시 응답가능한 컨텐츠임. 대표적 웹 서버: Apache WAS 사전적 정의: 인터넷 상에서 HTTP 프로토콜을 통해 사용자 컴퓨터나 장치에 애플리케이션을 수행해주는 미들웨어로서, 주로 동적 서버 컨텐츠를 수행하는 것으로 웹 서버와 구별이 되며, 주로 데이터베이스 서버와 같이 수행 WAS는 웹 서버 + 웹 컨테이너 여기서 웹 컨테이너란 웹 서버가 보낸 JSP, PHP 등의 파일을 수행한 결과를 다시 웹 서버로 보내주는 역할을 .. IntelliJ (Project JDK is not defined) IntelliJ를 설치 후, 처음 코드를 실행할 때 겪었던 오류이다. "project JDK is not defined" 위 오류를 해결하기 위해서 "IntelliJ 초기설정", "IntelliJ 실행 비활성화" .. 등 구글링으로 찾아보면서 해결해보려고 했지만 해결이 되지 않았다. 그러던 도중, 한 블로그에서 본 방법대로 했더니 실행이 되었다. 오류가 발생하게 된 원인: IntelliJ 초기 설정시 jdk 세팅을 안 해줌 해결 방법: CTRL + ALT + SHIFT + S SDK, Language Level 을 원하는 자바 버전으로 설정 3. CTRL + ALT + S 4. 아래 빨간 네모창대로 자바 버전 설정하고, IntelliJ IDEA 로 Build and run 설정( gradle로 하면 빌드.. 이전 1 2 다음