Java

    [Java] 인스턴스 멤버와 정적 멤버, 싱글톤, final

    Chapter 06 클래스 06-1 객체 지향 프로그래밍 06-2 필드 06-3 생성자 06-4 메소드 06-5 인스턴스 멤버와 정적 멤버 06-6 패키지와 접근 제한자 06 클래스 06-5 인스턴스 멤버와 정적 멤버 시작하기 전에 인스턴스 멤버: 객체마다 가지고 있는 멤버 인스턴스 필드: 힙 영역의 객체마다 가지고 있는 멤버, 객체마다 다른 데이터를 저장한다. 인스턴스 메소드: 객체가 있어야 호출 가능한 메소드, 클래스 코드(메소드 영역)에 위치하지만, 이해하기 쉽도록 객체마다 가지고 있는 메소드라고 생각해도 된다. 정적 멤버: 객체와 상관없는 멤버, 클래스 코드(메소드 영역)에 위치 정적 필드 및 상수: 객체 없이 클래스만으로도 사용 가능한 필드이다. 정적 메소드: 객체 없이 클래스만으로도 호출 가능..

    [Java] 메소드(method)

    Chapter 06 클래스 06-1 객체 지향 프로그래밍 06-2 필드 06-3 생성자 06-4 메소드 06-5 인스턴스 멤버와 정적 멤버 06-6 패키지와 접근 제한자 06 클래스 06-4 메소드 시작하기 전에 메소드(method)란? 객체의 동작에 해당하는 중괄호 {} 블록을 의미한다. 메소드를 호출하면 중괄호 블록에 있는 모든 코드들이 일괄적으로 실행된다. 메소드 선언 메소드 선언은 선언부(리턴타입, 메소드 이름, 매개 변수 선언)와 실행 블록으로 구성된다. 이때, 메소드 선언부를 메소드 시그니처라 한다. 1. 리턴 타입 메소드를 실행한 후 결과값의 타입을 말한다. 리턴값은 있을 수도 없을 수도 있다. 리턴값 있을 경우 리턴 타입이 선언부에 명시되어야 한다. 리턴값 존재 여부에 따라 메소드 호출 방..

    [Java/프로그래머스] 예산

    문제 풀이 (1) 문제 분석하기 가장 적은 신청 금액부터 더하여 비교할 수 있도록 먼저 배열 오름차순 정렬 반복문을 돌면서 i번째 요소를 누적해서 더하고, budget과 조건문으로 비교 budget보다 작으면 count를 1 올려주고, 아니라면 반복문 멈춤 (2) 슈도코드 작성하기 누적해서 더한 값을 담을 sum 변수와 더해진 요소의 개수를 세어줄 count 변수 선언 for(d 배열의 길이만큼){ d의 i번째 요소를 sum에 더함 if(sum이 budget보다 작으면){ count를 1 올려줌 }else{ 반복문 멈춤 } } count 반환 (3) 코드 구현하기 package algorithm.test27; import java.util.Arrays; public class Solution { // 입..

    [Java/프로그래머스] 약수의 합

    문제 풀이 (1) 문제 분석하기 반복문을 돌면서 n을 i로 나눴을 때 나머지가 0인 값을 정답 변수에 더함 이때 주어진 반복 횟수를 줄이기 위해 정수 n을 1/2로 나눈 값 만큼 반복문을 돌고, 나온 값에 n을 미리 더함 (2) 슈도코드 작성하기 정답을 담을 int형 변수 answer n으로 초기화 for(1부터 n/2포함까지){ if(n을 i로 나눴을 때 나머지가 0이면){ answer에 i를 더함 } } 정답 변수 answer 반환 (3) 코드 구현하기 package algorithm.test26; public class Solution { // for문을 돌면서 정수 n을 i로 나눠서 딱 떨어지는 값을 answer에 더함 // 반복문은 n/2 까지 public int solution(int n) {..

    [Java/프로그래머스] 약수의 개수와 덧셈

    문제 풀이 (1) 문제 분석하기 약수의 개수를 count하는 메소드를 따로 분리 입력 받은 수만큼 반복문을 돌면서 메소드로 약수의 개수를 구한 뒤, 짝/홀수 판별하여 answer에 담아줌 이때 약수 개수가 홀수라면 음수로 저장되어야 하므로 * (-1) (2) 슈도코드 작성하기 정답을 담을 int형 answer 변수 선언 for(left부터 right만큼) { if(약수의 개수가 짝수라면) { 정답에 i를 담음 else(약수의 개수가 홀수라면) { 정답에 -i를 담음 } } // 약수의 개수를 구할 메소드 분리 정수 n을 매개변수로 받는 메소드 생성 개수를 세줄 int형 변수 count 1로 초기화 for(2부터 n포함까지) { if(n을 i로 나눴을 때 나머지가 0이면 count++ count를 반환 }..

    [Java] 필드(Field)와 생성자(Constructor)

    Chapter 06 클래스 06-1 객체 지향 프로그래밍 06-2 필드 06-3 생성자 06-4 메소드 06-5 인스턴스 멤버와 정적 멤버 06-6 패키지와 접근 제한자 06 클래스 06-2 필드 시작하기 전에 필드(Field) 란? 객체의 고유 데이터, 객체가 가져가야 할 부품, 객체의 현재 상태 데이터 등을 저장하는 곳을 의미한다. 필드 선언 클래스 중괄호 {} 블록 어디서든 존재 가능하다. 생성자와 메소드 중괄호 블록 내부에는 선언 불가하다. 변수와 선언 형태 유사하나 변수 아님에 주의한다. 타입 필드 [ = 초기값]; 타입에는 기본 타입과 참조 타입이 모두 올 수 있다. 초기값은 주어질 수도, 생략할 수도 있다. 초기값 지정되지 않은 필드는 객체 생성 시 자동으로 기본 초기값 설정된다. 필드 사용..

    [TIL] 2주차 알고리즘 테스트

    ✍ Today I Learned 알고리즘 테스트 오늘은 대망의 알고리즘 테스트 날이다. 주어진 시간은 4시간, 문제는 총 3문제. 모의고사 때와는 다르게 2문제를 제출해야 하고, 이 중 하나만 맞아도 과락은 면할 수 있다. 저번 모의고사와 마찬가지로 주어진 시간 내에 3문제를 다 푸는 것이 목표! ..였지만 3번 문제는 시험장을 나와 조원들과 함께 풀이를 하였다...😅 다음은 오늘 알고리즘 테스트의 모든 문제와 내가 제출한 코드이다. 첫 번째 문제 문제를 분석해보자 간단하게 0의 개수로 도개걸윷모를 나눌 수 있다. → 모(0개), 도(1개), 개(2개), 걸(3개), 윷(4개) index에 맞게 배열을 생성하고, 반복문으로 0의 개수를 카운팅 해서 배열에 index로 접근한다. 코드로 구현해보자 pack..

    [TIL] 2주차 알고리즘 조각 모음

    ✍ Today I Learned Java 스터디 3일 차 우리 조의 기존 스터디 룰은 월~금: 개인 공부 / 토: 각자 맡은 챕터 발표였으나 함께 하는 시간을 더 의미 있게 보내고자 다른 방식을 제안해보았다. 정해진 양을 다 같이 미리 공부해오고, 이해가 어려웠던 부분이나 궁금한 내용을 공유하는 방식으로! 다행히 조원분들도 의견에 동의해주셔서 앞으로는 이런 방식으로 스터디가 진행될 것 같다. 오늘은 각자 공부해온 06-1 객체지향 프로그래밍 부분을 공유하였다. 확실히 함께 이야기 나누다 보면 내가 어떤 부분을 모르는지 깨닫게 되는 것 같다. 다음은 오늘 스터디 시간에 나누었던 내용이다. 객체가 생성되면 어디에 저장되는가? new 연산자로 메모리 힙 영역에 객체를 생성하고, 이후 객체 번지를 리턴한다. 클..