전체 글 (206) 썸네일형 리스트형 1. OOP (Object-Oriented Programming) OOP란 무엇인가?OOP는 객체 지향 프로그래밍이다. 개발자라면, 특히나 자바를 공부하는 개발자라면 항상 듣는 말이다. 하지만 실제로는 무엇을 의미할까? “객체를 중심으로 프로그램을 설계하는 사고 방식” 다시 말하자면 역할을 나눠서 각자 책임을 지게 하는 방식이라고 이해하면 좋을 것 같다. 회사를 예로 들어보자.인사팀은 채용을 담당하고, 회계팀은 돈을 관리한다. 개발팀은 제품 개발을 한다. 이렇게 각자의 역할을 나눠서 하는거라고 보면 된다. 만약 사장 혼자 다 한다면? 회사는 안돌아갈 것이다. 객체는 이게 핵심이다. - 상태를 가진다 - 행동을 가진다 - 서로 메시지를 주고 받는다 OOP는 이론적으로 캡슐화 / 추상화 / 상속 / 다형성 이렇게 4가지가 핵심이다. 1. 캡슐화 - 내부 구현은 숨기고.. GPT가 추천해준 커리큘럼 어느덧 IT 웹개발자로 지낸 지 5년이 되었다. 그동안 난 얼마나 성장했고 발전해왔는가? 생각해보면 참 부끄러울 따름이다. 그저 일에 치여, 바쁘다는 핑계로 공부도 하지 않았고 노력하지 않았던, 일을 하며 일에 익숙해졌지만 정작 내 자신에 대한 자신감(실력)을 키우지 못했던 사람으로서 2026년에는 꼭 제대로 공부해보자 라는 마음을 가지고 시작을 해보려고 한다. 최근 2년동안 나에게 온갖 질문들로 시달렸던, 나에 대해 잘 알게 된 GPT가 추천해준 커리큘럼이다. 1주차 Java 기초 재정비 1. OOP ● 캡슐화 / 상속 / 다형성 / 추상화 ● 오버라이딩 / 오버로딩 ● 인터페이스 vs 추상클래스 차이 2. 메모리 구조 ● Stack vs Heap ● 객체 생성 과정 ● 참조 타입 ● .. [Java] isEmpty 메서드를 쓰는데 NullPointerException 뜨는 경우 isEmpty 메서드를 사용하는 객체 또는 변수 자체가 null 인 경우 NullPointerException이 뜨게 된다. Ex) List test; 이렇게 선언했을 경우 test 자체가 default 값이 null 이기 때문에 isEmpty() 메서드를 사용하면 null.isEmpty() 가 된다. -> 따라서 NullPointerException 오류가 발생한다. 해결방안) != null 조건 추가 1715번 카드 정렬하기(Java) 우선순위 큐 알고리즘 문제 우선순위 큐를 이용하면 금방 풀 수 있다. ex) 3 3 3 3 1) 우선 두 개를 빼내서 더한다. (3+3=6) 2) 큐 안에 넣는다. (3 3 6) 3) 다시 두 개를 빼내서 더한다. (3+3=6) 4) 큐안에 넣는다. (6 6) 5) 다시 두 개를 빼내서 더한다. (6+6=12) 6) 이 때 큐 안에 남은 값들이 없으므로 종료한다. 7) 두 값을 꺼내 더한 값들을 더한다. (6+6+12=24) 만약 1개의 값이 들어왔다면 비교할 대상이 없으므로 횟수는 0번이다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43.. 1946번 신입 사원(Java) 그리디 알고리즘 서류심사 성적을 먼저 정렬을 시키면 첫번째 사람은 선발이 된다. 그 이후 면접시험을 비교해주면 된다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 package algorithm; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.Comparator; import java.util.St.. 1439번 뒤집기(Java) 오랜만에 풀어보는 알고리즘 문제. 예시로 있는 S=0001100로 설명을 하자면 0001100에서 중복되는 숫자를 제거해서 010으로 만들면 된다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 package algorithm; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Problem1439{ public static void main(String[] args) throws IOExc.. 1931번 회의실 배정 그리디 알고리즘 회의가 끝난 시간대로 정렬을 하고 다음으로 올 수 있는 회의 시작시간을 찾으면 된다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 package algorithm; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.Comparator; impo.. 13305번 주유소 (java) 그리디 알고리즘 ex) N = 4 도시마다 기름 가격 5 2 4 1 도시 사이 거리 2 3 1 도시마다 비교해서 앞 도시의 기름 가격이 더 싸다면 거기서 채워넣으면 된다. 즉, 5 2 4 1 -> 5 2 2 1 로 가격을 생각하면 된다. 마지막 도시의 기름 가격은 신경쓰지 않아도 된다. 답은 5*2 + 2*3 + 2*1 = 18 이다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 import java.io.BufferedReader; import java.io.IOException; import java.io.InputS.. 이전 1 2 3 4 ··· 26 다음