[자바 스터디] 0113 프로그래머스 ( 핸드폰 번호, 콜라츠 추측) 1. 핸드폰 번호 https://school.programmers.co.kr/learn/courses/30/lessons/12948 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 풀이 로직. 1. 휴대폰 번호 길이만큼 for문 반복 2. 반복하며 i 가 휴대폰 번호 길이-4 되기 전까지 '*' answer에 append(스트링빌더 사용했으므로) 3. 마지막 4개는 charAt(i)로 뽑아서 answer에 넣기 import java.util.*; class Solution { public String solution(String phone_number)..
썸네일 [자바 스터디] 0109 프로그래머(두개 뽑아서 더하기, 하샤드 수) https://school.programmers.co.kr/learn/courses/30/lessons/68644 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내 코드 : import java.util.*; class Solution { public ArrayList solution(int[] numbers) { ArrayListanswer = new ArrayList(); for(int i=0;i
썸네일 [자바] 백준 4344번 문제 https://www.acmicpc.net/problem/4344 4344번: 평균은 넘겠지 각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다. 정답과 출력값의 절대/상대 오차는 10-3이하이면 정답이다. www.acmicpc.net 문제는 위와 같다. 내가 풀어 본 방식은 다음과 같다. package Practice; import java.util.Scanner; public class P4344 { public static void main(String[] args) { Scanner scn = new Scanner(System.in); int c = scn.nextInt(); // test case int[][] testCase = new int[c][];..
[자바] 1204 수업 소스코드 아카이브 보호된 글입니다.
썸네일 [자바] 인터렉션 연습문제 _ 그래픽카드 이번 게시글에는 수업 시간에 인터렉션을 활용하기 위해 배웠던 문제를 다시 한 번 혼자서 풀어보고자 한다. 문제의 골자는 다음과 같다. 인터페이스를 활용하여 그래픽카드와 os의 소통과정을 구현해 볼 것. 각 클래스를 . Java 단위로 나눌 것. 클래스는 Rgb, PointColor, GraphicsCard, NvidiaGeForce, AmdRadeon, GraphicsCardMain 총 6개로 구성할 것. 그럼 시작해 보겠다. 먼저, Rgb 클래스를 구성해보자. package inter; public class Rgb { private int red; private int green; private int blue; Rgb(){ this(0,0,0); } Rgb(int red, int green, int..
[자바]1130 수업 소스코드 아카아브 보호된 글입니다.
[자바] 인터페이스 예제 풀이 자바에서는 다중 상속을 지원하지 않는다. 따라서 다중 상속이 필요할 경우, 인터페이스를 활용할 수 있다. 인터페이스는 다른 클래스를 작성할 때 기본이 되는 틀을 제공하면서, 다른 클래스와의 중간 매개 역할을 하는 추상 클래스를 의미한다. 추상클래스의 경우 추상 메서드, 생성자, 필드, 일반 메서드도 포함하지만 인터페이스는 오로지 추상 메서드와 상수만을 포함하게 된다. 다만, 제어자는 생략이 가능하며, 생략된 제어자는 컴파일 시 자동 추가된다. 예제를 만들어 보자. package inter; interface Animal { public static final int A = 10; public abstract void cry(); } class Cat implements Animal { public voi..
썸네일 [자바] 오버로딩과 오버라이딩 목표: 오버라이딩에 대하여 정확하게 알고, 오버로딩과 오버라이딩의 차이를 생각해보자. 메서드 오버로딩에 관해서는 앞서 공부한 바가 있다. 간단하게 다시 살펴보자면, 메서드 오버로딩은 코드의 중복성을 줄여 재사용성을높이며 사용자에게 매개변수의 자율성을 제공하기 위해 한 클래스 내에 같은 이름의 메서드를 여러개 정의하는 것이다. 이때 각 메서드는 이름이 같고, 매개변수의 개수 또는 타입이 다르게 구현되어야 한다. 다만, 반환타입은 아무런 영향을 미치지 않는다. 다음은 오버로딩의 간단한 예시다. add 와 sub 라는 동일한 이름의 메서드를 매개변수 0개, 2개로 각각 2개씩 나누어 오버로딩 하였다. 물론, 답은 300, 100으로 2번 반복되어 나오지만 오버로딩의 기능을 확인해 볼 수 있는 예시다. 이러한 ..
썸네일 [자바] 초기화 블록과 생성자, 초기화블록의 실행 순서 목적: 초기화 블럭은 생성자와 뭐가 다를까? 생성자와 초기화 블럭의 실행 순서는 무엇이 더 먼저인가? 초기화 블록은 말 그대로 초기화를 위한 블록이다. static 변수와 instance 변수의 경우 따로 초기화를 하지 않으면 기본 값이 세팅된다. 그러나 지역변수의 경우 반드시 초기화해야만 사용할 수 있는데, 그 초기화 방법 중 하나가 초기화 블록이다. 초기화 블럭은 static 초기화 블럭과 인스턴스 초기화 블럭이 있다. 각각 static {}, {} 으로 활용한다. 다음은 초기화 블록의 사용 예시이다. 위의 경우, 메인 메서드와 초기화 블럭 중 무엇이 먼저 실행되는지를 알 수 있다. 우선, static 초기화 영역이 가장 먼저 실행된다. 그 다음, "main method start" 가 화면에 찍힌다..
썸네일 [자바] 생성자, this 의 사용 생성자(constructor) 인스턴스가 생성될 때 호출되는 인스턴스 초기화 메서드 입니다. 1. 생성자의 이름은 클래스의 이름과 같아야 함 2. 리턴값이 없음 주로 인스턴스 변수의 초기화에 쓰임 생성자 사용의 예시 Car 클래스에 두 개의 생성자를 매개변수의 개수를 다르게 하여 오버로딩 한 경우 첫번째 생성자는 매개변수가 없는 경우, 두 번째는 String 타입x2, int 타입x1 의 매개변수를 설정한 경우다. 반환타입이 없으므로 클래스명으로 시작하고, 메서드처럼 오버로딩이 가능하다는 특징이 있다. 위와 같이 클래스를 설정해 두고, 아래와 같이 메인 메서드를 짜면 다음과 같은 결과가 나온다. c1의 경우 매개변수를 아무것도 넣지 않았으니, 당연히 기본값으로 초기화 된다. 이후 각각의 변수에 원하는 값..