https://school.programmers.co.kr/learn/courses/30/lessons/120585 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 상황 머쓱이는 학교에서 키 순으로 줄을 설 때 몇 번째로 서야 하는지 궁금해졌습니다. 머쓱이네 반 친구들의 키가 담긴 정수 배열 array와 머쓱이의 키 height가 매개변수로 주어질 때, 머쓱이보다 키 큰 사람 수를 return 하도록 solution 함수를 완성해보세요. 문제 풀이 class Solution { public int solution(int[] array, int heig..
https://school.programmers.co.kr/learn/courses/30/lessons/120841 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제상황 사분면은 한 평면을 x축과 y축을 기준으로 나눈 네 부분입니다. 사분면은 아래와 같이 1부터 4까지 번호를매깁니다. x 좌표와 y 좌표가 모두 양수이면 제1사분면에 속합니다. x 좌표가 음수, y 좌표가 양수이면 제2사분면에 속합니다. x 좌표와 y 좌표가 모두 음수이면 제3사분면에 속합니다. x 좌표가 양수, y 좌표가 음수이면 제4사분면에 속합니다. x 좌표 (x, y)를 차례대로 ..
try ~ catch 예외가 발생할 때 그에 맞는 적절한 처리가 가능하다. 어떤 예외가 발생할지 모를 때는 catch(Exception e) 사용 try { ... } catch(예외1) { ... } catch(예외2) { ... } finally finally : 예외가 발생여부에 상관없이 공통적으로 수행되어야 할 코드 try { ... } catch(예외1) { ... } catch(예외2) { ... } finally { ... } throws throws : 예외던지기. 예외를 당장 처리하지 않고, 자신을 호출한 로직에서 처리되게끔 던지는 기능 (특정 로직에서 특정 예외를 공통적으로 처리하고자 할 때 사용) class Main { public static void main(String[] arg..
클래스, 멤버 변수, 메서드, 생성자에서 사용 가능 private = 외부에서의 호출 불가, 같은 클래스 내에서만 접근 가능 public = 접근 제한 없음 (default) = 같은 패키지 내에서 접근 가능 protected = 같은 패키지 내에서, 다른 패키지의 자식 클래스에서 접근 가능 기본적으로 private로 세팅하고 외부에 공개할 것만 public 보통 클래스 안의 변수는 private로 하고 세팅용, 접근용 메서드를 사용하여 접근함 class Main { public static void main(String[] args) { 사람 a사람 = new 사람(); a사람.setId(20); System.out.println("제 번호는 " + a사람.getId() +" 입니다."); // 출력 ..
인터페이스 인터페이스를 사용하여 자바의 다형성을 극대화할 수 있다. 다중 상속 가능 추상 메서드와 상수만 사용 가능 생성자 사용 불가 : 인터페이스 객체가 아니므로 생성자 사용 불가 메서드 오버라이딩 필수 : 자식클래스는 부모 인터페이스의 추상메서드를 모두 오버라이딩 해야함 인터페이스에는 private 사용 불가능 public class Main { public static void main(String[] args) { 사람 a사람 = new 홍길동(); 변호사 a변호사 = (변호사)a사람; 치과의사 a치과의사 = (치과의사)a사람; 성화봉송자 a성화봉송자 = (성화봉송자)a사람; } } abstract class 사람 { } class 홍길동 extends 사람 implements 변호사, 치과의사,..
생성자(Constructor) 객체가 생성될때 자동으로 호출되는 특수 목적의 메소드로 객체의 초기화를 위해 사용 생성자 메서드의 이름은 클래스 이름과 같아야함 생성자는 객체가 생성될 때 자동으로 한번 호출됨 클래스에 최소 1개는 존재해야하고, 생성자를 작성하지 않았다면 기본 default 생성자를 자동으로 생성 생성자 오버로딩 가능 : 하나의 클래스 안에 같은 이름의 생성자 메서드가 존재할 수 있지만 매개변수가 달라야 함 class 전사 { String 이름; int 나이; 전사() { // 생성자 이름 = 전사; 나이 = 20; } 전사(String 이름, int 나이) { // 생성자 오버로딩 } } 생성자 연쇄 호출 모든 class는 Object클래스의 자식클래스. 모든 클래스는 default 생성..
https://school.programmers.co.kr/learn/courses/30/lessons/120889 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 선분 세 개로 삼각형을 만들기 위해서는 다음과 같은 조건을 만족해야 합니다. 가장 긴 변의 길이는 다른 두 변의 길이의 합보다 작아야 합니다. 삼각형의 세 변의 길이가 담긴 배열 sides이 매개변수로 주어집니다. 세 변으로 삼각형을 만들 수 있다면 1, 만들 수 없다면 2를 return하도록 solution 함수를 완성해주세요. 문제 풀이 import java.util.Arrays;..
ArrayList 클래스 import java.util.ArrayList; ArrayList import 필요 ArrayList 메서드 삽입, 추출, 개수 .add(인덱스, 값) 리스트의 특정 인덱스에 값 삽입 .get(인덱스) 리스트의 특정 인덱스의 값 추출 .size() 리스트의 개수를 반환 항목 삭제 .remove(객체) 리스트에서 객체에 해당되는 항목을 삭제하고 삭제한 결과(true, false)를 반환 .remove(인덱스) 리스트에서 해당 인덱스의 항목을 삭제하고 삭제한 항목을 반환 list.remove(Integer.valueOf(1)) // 인덱스가 아닌 객체 -> value가 1인 element 삭제 검색 list.contains(객체) 리스트 안에 객체가 있는지 여부 검색 l..
Arrays 클래스 import java.util.Arrays; Arrays import 필요 Array 메서드 arrays.asList(arr) : 배열을 ArrayList로 변환 (리스트 형태) - 아래의 ArrayList 메소드를 더하여 활용 가능하다 배열 출력 Arrays.toString(arr) : 배열의 출력 Arrays.deepToString(arr) : 다차원 배열의 출력 배열 복사 Arrays.copyOf(arr, arr.length) : 배열 전체 복사 Arrays.copyOfRange(arr, 시작인덱스, 끝인덱스) : 배열의 일부를 복사 배열 정렬 Arrays.sort(arr) : 사전순 정렬 sort(arr, comparator) : 오름차순/내림차순 정렬 comparator에 C..
객체지향은 중복코드를 없애기 위해서 존재한다. 객체지향적인 구조를 위해서 일부러 중복코드를 허용하는 경우도 있다. 다형성 = 같은 타입이지만 실행결과가 다양한 객체를 이용할 수 있는 성질. 하나의 타입에 여러 객체를 대입하여 만든다. 상속(Inheritance) 부모클래스를 상속하는 자식클래스는 부모클래스의 기능을 그대로 물려받아 중복코드를 제거할 수 있다. 이후 유지보수가 편해지며 다형성을 구현할 수 있는 장점이 있다. 자식클래스에 메서드를 추가하여 부모클래스의 기능을 확장할 수 있다. extends 키워드 사용 class 오리 { void 날다(); void 수영하다(); } class 흰오리 extends 오리{ void 걷다(); } IS-A 관계 흰오리는 오리이다 처럼 말할 수 있는 관계를 IS..