목록전체 글 (75)
ballqs 님의 블로그
다형성(polymorphism)이란?다형성(polymorphism)이란 하나의 객체가 여러 가지 타입을 가질 수 있는 것을 의미한다.예를 들어 강아지나 고양이의 경우 둘 다 포유류라고 할 수 있다.자바에서 다형성은 한 타입의 참조 변수를 통해 여러 타입의 객체를 참조할 수 있도록 하는 것이다. 즉 부모 클래스를 통해 자손 클래스의 참조 변수를 다루거나 부모 클래스가 가지고 있는 동일한 이름의 오버라이딩하여 재작성한 메소드를 참조한다.다형성의 장점같은 메서드 이름이지만 여러 다른 실행 결과가 나옴객체지향 프로그래밍의 가장 큰 특징 중 하나하나의 부모클래스로 관리가 가능해 유지보수가 편리하다코드 예public class Main { public static void main(String[] args) ..
오늘은 자바 파일을 생성하면 만들어지는 구조와 온갖 배운 내용들을 정리해볼 생각이다. Main.java 파일을 생성하면 아래와 같다.public class Main { public static void main(String[] args) { // 내용 }} public 이란? 접근제어자의 종류중 하나로 언제 어디서든 접근 가능하다는 것을 의미한다. 다른 종류로는 private , protected , default 등이 있다. 단! class 앞에는 public 과 default 만 사용 가능하다.더보기public : 언제 어디서나 접근 가능 private : 같은 클래스 내에서만 접근 가능 protected : 같은 패키지 내에서, 그리고 다른 패키지의 자손 클래스에서 접근..
JVM이란?Java Virtual Machine의 약자로 "자바 가상 머신"이라는 뜻여러가지 기기 위에 Java 프로그램을 실행시킬 수 있는 가상의 기기를 만들어 주는 것을 의미바이트 코드내가 작성한 Java 파일을 운영체제가 읽을 수 있는 클래스 파일로 컴파일(Java 컴파일러)을 통해 변환한 코드 인터프리터운영체제가 읽은 바이트 코드를 기계가 실행할 수 있는 기계어로 번역 JIT 컴파일러인터프리터의 효율을 높여주는 서포터 해석기 메모리 영역운영체제로부터 JVM이 할당받은 메모리 영역 클래스 로더JVM으로 바이트 코드를 불러와서 메모리에 저장함 가비지 컬렉터메모리 영역에 안쓰는 데이터를 주기적으로 청소해줌 ※Runtime 시스템은 프로그램이 실행 중인 상태를 관리하는 시스템
프로그래머스의 N개의 최소공배수라는 문제를 풀면서 알게된 내용들이 있다.분명 어렸을때 학교를 다니면서 배웠던 내용인 최대 공약수와 최소 공배수였지만 이부분을 알고리즘으로 풀어내고자 하니 규칙을 찾아내기 보다는 나만의 풀이과정을 통해 풀게 되었다. 소인수분해를 통해 주어진 각 숫자의 최대 제곱을 구하여 풀어내는 방법이였다. 나의 풀이 방법과 동시에 최대 공약수 , 최소 공배수는 어떻게 구현해가는지 정리해보자최대 공약수(GCD) 알고리즘최대 공약수(Greatest Common Divisor)란? 두 수 이상의 여러 수의 공약수 중 최대인 수를 가리킨다. 12의 소인수분해 해보면 2 * 2 * 3이 된다.18을 소인수분해 해보면 2 * 3 * 3이 된다.두 수에서 소인수분해 후 주어진 숫자가 일치하는 것에서 ..
1.오늘 배운 것아무래도 개인학습조에 속해있다보니 거의 많은 시간을 코딩문제에 부딪혀가면서 모자란 부분을 배워가는건 오늘이 마지막이 아닌가 싶다. 오늘 배운것은 프로그래머스 코딩 문제인 피보나치 문제를 풀면서 부딪힌 문제였다.주어진 조건이 n의 값이 2이상 100,000 이하인 자연수다보니 수가 말도 안되게 커지면서 용량 초과로 에러난 것이기에 여러 자료형을 조사하게 되었다. 2.문제 풀어나가는 과정피보나치는 기본적인 개념은 알고 있었다.첫째 및 둘째 항이 1이며 그 뒤의 모든 항은 바로 앞 두 항의 합인 수열이다.F(0) + F(1) = F(2) 0 + 1 = 1F(1) + F(2) = F(3) 1 + 1 = 2F(2) + F(3) = F(4) ..
알고리즘 문제를 풀다가 높은 확률로 겪는 문제가 거의 이부분이였다.수식에는 뭔가 틀린게 없는데 테스트케이스를 통과 못하는 경우!계산된 수치가 Int가 감당할수 있는 크기를 벗어난 경우이다.그래서 java에 다른 숫자 타입이 많지만 문제 풀면서 사용한 int long BigInteger에 대해서 작성해본다. 차이점 intlongBigInteger저장 공간4 byte8 byteMinimum 70 byte데이터 범위약 -21억 ~ +21억약 -900경 ~ +900경Infinity타입기본타입기본타입참조타입 intint는 산술 연산이 가능한 정수값을 저장하는 자료형이다. 기본 사용// 아무런 선작업이 필요가 없다.int num = 10; int -> longint i = 4;long l = Long.valueO..
1.오늘 배운 것2022 카카오 블라인드 코딩 문제를 풀다가 어떻게 접근해야할지 수없이 고민을 하다가 배운 것이 있다.Set을 사용하는 것과 Map에 Set를 적용하여 사용하는 방법에 대해서 알게 되었다. 2.문제 풀어나가는 과정2022 카카오 블라인드 신고 결과 받기 코딩 문제를 푸는 도중 문제에 맞닥뜨렸다.각 멤버가 다른 멤버를 신고하며 횟수에 따른 메일 발송 유무를 정하는 그런 프로세스가 필요했다.다만 중복 신고가 있으면 1회 신고한 것으로 간주한다는 특수 조건이 있었다어떻게 접근할까 고민을 많이 하다가 생각해낸 것이 Set이였다.중복으로 신고를 해도 Set를 통해 중복 요소를 허용하지 않게 된 것이다.Set의 기본 사용은 아래와 같다.Set set= new HashSet();set.add("a")..
Set 이란?Set은 중복 요소를 허용하지 않는 Java Collection Framework의 인터페이스입니다. Set 특징중복 요소를 허용하지 않습니다.순서가 없습니다.엑세스가 빠릅니다.indexing이 없습니다.primitive type가 없습니다. Set 사용법import 작성import java.util.Set;import java.util.HashSet; 사용법Set set= new HashSet(); 값 추가Set set= new HashSet();set.add("a");set.add("a");System.out.println(set); // "a"위 예제에서 “a”를 두번 추가를 해보고 출력하면 중복이 제거된 상태에서 출력되는 것을 볼 수 있다. 값 제거set.remove("a");Sys..
1.오늘 배운 것오늘도 코딩 문제를 풀다가 막힌 부분이 생겨서 알던 내용은 복습하기 위해 모르던 내용은 기록을 위해 작성한다.우선적으로 복습하는 내용은 for문의 수행순서이다! 이걸 왜 이상하게 생각하고 있었는지 지금 생각해보면 슬프다. 자세한 내용은 개념 정리부분에 작성하겠다.모르던 내용은 toCharArray() 라는 메소드와 StringBuilder에 대해 배우게 되었다. 2.개념 정리for문코딩 문제를 풀다가 증감식이 선증가면은 ④이 먼저 동작하고 ②에 가서 조건식에 가는 줄 알았다.어쩌다가 그렇게 생각을 하게 되었는지 다시 되새기고자 아래와 같이 이미지로 그려놓는다.해당 for문의 동작 순서는 이러하다초기식에 값을 선언 해 놓는다.조건식에 가서 조건에 맞는지 검사한다.조건이 맞을 경우 실행코드로..
1.오늘 배운 것오늘 코딩 문제를 풀다가 막힌 부분이 생겨서 공부를 하다가 알게된 내용이 있다.소수 판별하기 와 약수 구하기에 대한 방법론을 알게 되었고 Integer를 == 로 비교하는 것과 equals로 비교하는 것의 차이에 대해서 배우게 되었다. 2.개념 정리소수 판별하기소수란?1과 자기 자신 만을 약수로 가지는 수 라고 한다. 이를 판별하기 위한 코드가 아래와 같다.for(int i = 0; i 위의 방법을 통해 나누어지지 않는다면 소수로 판단해서 알고리즘을 풀어나가면 된다. 약수 구하기약수란?어떤 수를 나머지 없이 나눌 수 있는 자연수이다. 이를 판별하기 위한 코드가 아래와 같다.for(int i=1; i 일반적인 방법이라면 위와 같이 사용하며 소수 판별하기와 다를것 없이 보이는데 숫자가 높을 ..