전체 글 59

[Java]객체지향 프로그래밍 II

1. 상속(inheritance) 1.1 상속이란?기존의 클래스 재사용하여 새로운 클래스 작성하는 것두 클래스를 조상과 자손으로 관계를 맺음 extends 키워드로 상속함 생성자와 초기화 블럭은 상속되지 않고 멤버만 상속자손 클래스의 멤버 개수 >= 조상 클래스의 멤버 개수(extends)  1.2 클래스간 관계상속관계(inheritance)공통부분은 조상에서 관리하고 개별부분은 자손에서 관리조상의 변경은 자손에 영향을 줌A는 B이다(is-a) 포함관계(composite)한 클래스의 멤버변수로 다른 클래스 타입의 참조변수를 선언작은 단위의 클래스를 먼저 만들고 이를 조합해 하나의 커다란 클래스 생성 A는  B를 가지고 있다.(has-a)  1.3 단일 상속(single inheritance)Java는 단..

Java 2025.04.06

[Java]객체지향 프로그래밍 I

1. 객체지향언어기존 프로그래밍 언어에 몇 가지 새로운 규칙을 추가하여 유기적으로 프로그램 구성객체(Object) 를 중심으로 프로그램을 설계하고 구현하는 프로그래밍 방식데이터(속성)와 이를 조작하는 메서드(기능)를 하나의 객체로 묶어 설계하는 방식 장점코드 재사용: 상속을 통해 기존 코드 활용 가능유지보수 용이: 캡슐화를 통해 코드 수정이 쉬움확장성 증가: 다형성을 통해 새로운 기능 추가 가능가독성 향상: 코드가 논리적으로 구성되어 이해하기 쉬움 단점절차지향(Procedural) 프로그래밍보다 구조가 복잡해짐객체 생성과 메시지 전달 과정(메서드 호출 등)에서 오버헤드 발생프로그램 실행 속도가 느려질 수 있음객체 간 의존성 증가 (결합도 문제)  객체지향의 4대 특징1. 캡슐화 (Encapsulation..

Java 2025.04.06

[Programmers/Java] 추억 점수

https://school.programmers.co.kr/learn/courses/30/lessons/176963 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr     import java.util.Arrays;class Solution { public int[] solution(String[] name, int[] yearning, String[][] photo) { int[] answer = new int[photo.length]; for (int i=0; i  배열을 Arrays.asList()활용해 ArrayList로 변환?public static ..

Algorithm 2025.03.28

[Programmers/Java] 비밀지도

https://school.programmers.co.kr/learn/courses/30/lessons/17681 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr     class Solution { public static String toBinary(int n, int num) { StringBuffer sb = new StringBuffer(); for (int i = 0; i  10진수를 2진수 String으로 변환하는 메서드 작성함StringBuiler(or StringBuffer)는 String과 다르므로 .toString()으로 변환해줄 것생각나는대로 ..

Algorithm 2025.03.27

[Programmers/Java] 콜라 문제

https://school.programmers.co.kr/learn/courses/30/lessons/132267 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr   class Solution { public int solution(int a, int b, int n) { int answer=0, spare = 0; while (n > 0) { if (n    n개의 빈병을 가지고있고 a병을 가져다주면 b병을 주므로 다음 회차에 받는 콜라는 (n/a)*b이다n이 a로 정확하게 나누어지지 않을 때 남는 병(spare)이..

Algorithm 2025.03.26

[Java]배열(array)

배열같은 타입의 여러 변수를 하나의 묶음으로 다루는 것 배열의 길이는 고정자바는 배열이 객체로 heap영역에 저장됨(다른 언어는 보통 stack에 저장됨)2차원 이상이라도 실제 메모리상으로는 직선으로 저장 배열의 선언과 생성타입[] 변수이름; // 배열 선언변수이름 = new 타입[길이];// 배열 생성길이에는 int타입 범위의 0을 포함한 양의 정수만 들어갈 수 있음배열 index의 범위를 넘어서면 ArrayIndexOutOfBoundsException 에러 발생 자바에서는 JVM이 배열의 길이 별도로 관리배열이름.length를 활용해 배열의 길이를 읽을 수 있음(배열의 길이는 고정이므로 상수) 배열의 초기화// 방법 1int[] score = new int[5];score[0] = 50;score[..

Java 2025.03.25

[Programmers/Java] 문자열 내 마음대로 정렬하기

https://school.programmers.co.kr/learn/courses/30/lessons/12915 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr   import java.util.*;class Solution { public String[] solution(String[] strings, int n) { for (int i = 0; i    n에 해당하는 문자를 단어의 앞쪽에 붙여준다Arrays.sort()메서드 활용해 알파벳 순서대로 정렬해준다붙여줬던 0번 인덱스의 단어를 제외(substring()으로 1번 인덱스부터 시작)하여 저장한다   ex)str..

Algorithm 2025.03.25

[Java]제어문(조건문, 반복문)

조건문 if, switch if문if (조건식) { // 조건식 true일 경우 수행될 코드 작성} 블럭 내의 문장이 하나뿐일 경우 괄호{}를 생략 가능 if (score > 80) System.out.println("pass"); // 들여쓰기를 해도 괄호로 묶여있지 않으면 포함되지 않는다   if-else문if (조건식) { // 조건식이 true일 때 수행될 코드} else { // 조건식이 false일 때 수행될 코드}   if-else if문 if (조건식) { // 조건식1이 true일 때 수행될 코드} else if(조건식2) { // 조건식2이 true일 때 수행될 코드} else if(조건식3) { // 조건식3이 true일 때 수행될 코드} else { // 조건식이 f..

Java 2025.03.23

[Java]연산자(operator)

연산자 우선순위[최]우선(  ) 괄호[단]항~ , ! , + , -, ++ , --[산]술 * , / , % , + , - ,[쉬]프트> , >>>[관]계(비교)> , = , [논]리비트논리 : & , ^ , ! , | 인발논리 : && , ||[삼]항? :[대]입산술대입  =. += , -= , *= , /=, %=쉬프트대입 >=, >>>=비트논리대입 &=, != , ^=[콤]마, 콤마 최단/산쉬관논/삼대콤으로 암기해두면 복잡한 수식 있을 때 괄호를 줄일 수 있음이항 연산자에는 산술, 비교, 논리 연산자가 포함됨 단항 > 이항> 삼항단항, 대입연산자만 진행방향이 왼쪽이다 대입연산자는 항상 마지막  //단항연산자 : 증감 ==> ++, -- , ~ ,.....int x = 10, y;// y = x++;..

Java 2025.03.23

[Programmers/Java] 푸드 파이트 대회

https://school.programmers.co.kr/learn/courses/30/lessons/134240 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr      class Solution { public String solution(int[] food) { String answer = ""; StringBuilder sb = new StringBuilder(); for(int i = 1; i   1. String 메서드의 repeat()활용해 2로 나눈 몫을 곱해준다(음식은 선수 2명에게 함께 주어져야 하..

Algorithm 2025.03.21