자바 34

[자바의 정석] CH07 객체지향 프로그래밍Ⅱ (1)

자바의 정석 책을 공부하고 정리한 글입니다!혹시라도 틀린 부분이 있다면 친절하게 알려주세요. 감사합니다!CH7. 객체지향 프로그래밍 Ⅱ상속(Inheritance)상속이란 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것입니다. 상속을 통해 클래스를 작성하면 다음과 같은 특징이 있습니다:적은 양의 코드로 새로운 클래스를 작성할 수 있다.코드를 공통적으로 관리할 수 있어 코드의 추가 및 변경이 용이하다.이러한 특징은 코드의 재사용성을 높이고, 프로그램의 생산성과 유지보수에 크게 기여합니다. 자바에서 상속을 구현할 때는 extends 키워드를 사용합니다.class 클래스명 extends 부모클래스명 { }예를 들어 탈것을 정의한 Vehicle 클래스를 상속받는 Car라는 클래스를 만들어 보겠습니다.cla..

[자바의 정석] CH06 객체지향 프로그래밍Ⅰ (2)

자바의 정석 책을 공부하고 정리한 글입니다!혹시라도 틀린 부분이 있다면 친절하게 알려주세요. 감사합니다!CH6. 객체지향 프로그래밍(2)오버로딩(overloading)메서드도 변수와 마찬가지로 같은 클래스 내에서 서로 구별될 수 있어야 하므로 각기 다른 이름을 가져야 합니다. 그러나 자바에서는 한 클래스 내에서 이미 사용 중인 메서드 이름이라도 매개변수의 개수 또는 매개변수 타입이 다르면 같은 이름의 메서드를 정의할 수 있습니다. 이처럼 한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것을 메서드 오버로딩이라고 합니다. 오버로딩의 조건은 다음과 같습니다:메서드의 이름이 같아야 한다.매개변수의 개수 또는 매개변수 타입이 달라야 한다.메서드 오버로딩의 경우, 메서드 이름이 같기 때문에 이름으로는 다른..

[자바의 정석] CH06 객체지향 프로그래밍Ⅰ (1)

자바의 정석 책을 공부하고 정리한 글입니다!혹시라도 틀린 부분이 있다면 친절하게 알려주세요. 감사합니다!CH6. 객체지향 프로그래밍객체지향언어객체지향 언어의 주요 특징은 다음과 같습니다:코드의 재사용성이 높다.코드의 관리가 용이하다.신뢰성이 높은 프로그래밍을 가능하게 한다.특히 코드의 재용성이 높고 유지보수가 용이하다라는 것이 가장 큰 장점이며, 이러한 장점은 프로그램의 개발과 유지보수에 드는 시간과 비용을 획기적으로 개선하였습니다.클래스와 객체클래스란 '객체를 정의해놓은 것'을 말하며, 객체를 생성하는데 사용됩니다.객체의 사전적인 정의는 '실제로 존재하는 것'입니다. 우리가 주변에서 볼 수 있는 책상, 의자, 자동차와 같은 사물들이 곧 객체입니다. 프로그래밍에서의 객체는 클래스에 정의된 내용대로 메모리..

[자바의 정석] CH05 배열 정리

자바의 정석 책을 공부하고 정리한 글입니다!혹시라도 틀린 부분이 있다면 친절하게 알려주세요. 감사합니다!CH5. 배열배열이란 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것을 말합니다. 생성 방법은 다음과 같습니다.타입[] 변수이름;변수이름 = new 타입[길이];// 혹은타입[] 변수이름 = new 타입[길이];다음은 배열의 크기가 5인 int형 배열을 생성하는 코드입니다.int[] score = new int[5]; // 크기가 5인 int형 배열 생성 score은 int형 데이터를 5개 저장할 수 있는 배열이 되는 것입니다! 배열을 이해하려면 다음의 용어에 익숙해지셔야 합니다!배열의 요소: 생성된 배열의 각각의 저장공간을 말함: '배열이름[인덱스]'로 접근 가능인덱스: 배열의 요소마다 붙여진 일..

[백준] 2292번: 벌집 (JAVA)

문제: https://www.acmicpc.net/problem/2292문제 접근방의 개수에 대한 규칙을 찾을라고 했습니다.처음에 그림으로 그려서 볼까 하다가 그리기 너무 힘들어서..일단, 문제에서 제공한 사진을 보며, 지나가야하는 방의 개수에 해당하는 방이 뭐뭐 있는지 알아봤습니다.방 1개: 1방 2개: 6개의 방이 해당: 2~7방 3개: 12개의 방이 해당: 8~19방 4개: 18개의 방이 해당: 20~37방 5개: 24개의 방이 해당: 28~61해당하는 방의 개수가 6의 배수씩 늘어나는게 보이시나요?이 규칙을 적용하여, 코드를 짜보았습니다.전체 코드import java.io.*;public class Main { public static void main(String[] args) throws..

[백준] 2903번: 중앙 이동 알고리즘 (JAVA)

문제: https://www.acmicpc.net/problem/2903문제 접근규칙을 찾는 문제였던 거 같습니다!그래서 바보인 저는 냅다 노트를 꺼내서 그림부터 그렸는데요!! 규칙 찾는데 시간이 너무 오래걸렸었는데..어찌하다 점의 개수에 대한 규칙? 을 찾았습니다!(바보여서 4번 반복한 것까지 그려 봤어요 ㅋㅋ..)초기 점의 개수: 한 변에 있는 점 2개 -> 2의 제곱1번: 한 변에 있는 점 3개 -> 3의 제곱2번: 한 변에 있는 점 5개 -> 5의 제곱3번: 한 변에 있는 점 9개 -> 9의 제곱4번: 한 변에 있는 점 17개 -> 17의 제곱그래서 제곱을 빼고 숫자에만 집중에 봤습니다: 2 -> 3 -> 5 -> 9 -> 17  숫자가 (1, 2, 4, 8,..) 이렇게 2의 거듭제곱 꼴로 증가..

[백준] 2720번: 세탁소 사장 동혁 (JAVA)

문제: https://www.acmicpc.net/problem/2720문제 접근동전의 개수를 담을 배열 생성: 0번 인덱스부터 순서대로 쿼터, 다임, 니켈, 페니for문 + if문 활용하여 동전의 개수 계산한 후, 배열에 넣어주기배열을 차례로 출력전체 코드import java.io.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(Syst..

[자바의 정석] CH04 조건문과 반복문 정리

자바의 정석 책을 공부하고 정리한 글입니다!혹시라도 틀린 부분이 있다면 친절하게 알려주세요. 감사합니다!CH4. 조건문과 반복문 특정 조건에 따라 문장을 건너뛰거나, 때로는 같은 문장을 반복해서 수행해야할 때가 있습니다. 이처럼 프로그램의 흐름을 바꾸는 역할을 하는 문장을 제어문이라 하는데, 조건문과 반복문이 제어문에 속합니다.조건문 - if, switch1) if / if-else / if-else if  if문가장 기본적인 조건문으로 다음과 같이 사용합니다.if(조건문) { // 조건이 참(true)일 때 수행될 로직 작성}보통 블럭(중괄호) 안에 여러 문장을 넣지만, 한 문장일 때는 블럭을 생략할 수 있습니다.if(score > 60) System.out.println("합격"); Syst..

[백준] 11005번: 진법 변환2 (JAVA)

문제: https://www.acmicpc.net/problem/11005문제 접근이번 문제도 진법 변환입니다! 하지만 저번 글과 반대로 10진법을 N진법으로 변환하는 문제입니다.그래서 이번에는 10진법을 N진법으로 바꾸는 방법을 설명해보겠습니다!(혹시 N진법을 10진법으로 바꾸고 싶다면 이전 글을 참고해주세요) 10진수를 N진수로 변환하려면, 변환하고 싶은 10진수를 N으로 나누고 나머지를 옆에 적습니다. 이 과정을 더 이상 나눌 수 없을 때까지 반복한 다음, 몫부터 시작해서 적었던 나머지를 모두 적으면 됩니다!이건 손그림이 필요해서,, 실제 예시는 보여드리지 않겠습니다 ㅠ.ㅠ그래도 2진수 구하는 법을 아신다면, 다른 진수도 쉽게 구하실 수 있습니다!전체 코드import java.io.*;import ..

[백준] 2745번: 진법 변환 (JAVA)

문제: https://www.acmicpc.net/problem/2745문제 접근이번 문제는 진법 계산하는 법만 안다면 그다지 어렵지 않은 문제였습니다!그래서 문제 접근 방식을 설명드리는 것보다는 N진법을 10진법으로 바꾸는 방법을 설명해드리겠습니다. 어떤 진법으로 된 수라도 10진수로 변환하는 법은 똑같습니다!각 자리의 수에 해당 단위의 값을 곱해서 더하면 됩니다! 글로 봐서 이해가 잘 안되실 수도 있는데 10진수 1029 라는 숫자를 예시로 들어보겠습니다! 1029를 풀어서 쓰면 다음과 같습니다:이번에는 2진수 1010을 10진수로 변환해보겠습니다:즉, N진수를 10진수로 변환하고 싶다면 가장 우측에 있는 수부터 차례로 N^0, N^1,N^2, ..., N^n을 곱하고 더해주면 됩니다!단 9를 초과하..