STUDY/JAVA

    [TIL] 프로그래머스 - 숫자 짝꿍

    5일이 걸려서 드디어 문제를 푸는 데 성공했다. 이번 주는 시간이 없어 매일 30분 정도밖에 투자하지 못한것 같다. 하지만 풀어낸 과정이 괜찮았던 거 같아서 기록해본다. 문제 설명(from. Programmers '숫자 짝꿍') 두 정수 X, Y가 있을 때 겹치는 숫자를 찾아 가장 큰 수를 만드는 것. ex. X = 3403, Y = 13203 : 공통으로 나타나는 3, 0, 3으로 만들 수 있는 가장 큰 정수인 330 ex. X = 5525, Y = 1255 : 공통으로 나타나는 2, 5, 5로 만들 수 있는 가장 큰 정수인 552 겹치는 수가 없으면 "-1" return. X와 Y는 String으로 주어지며, 자릿수는 3,000,000이하이다. X와 Y는 0으로 시작하지 않는다. String으로 re..

    [TIL] 약수의 개수 구하기 빠른 방법

    원래 Math.sqrt()와 for문을 사용하여 구했는데 1~n까지 모든 수의 약수의 개수를 구하라고 했을 때, 약수의 개수만큼만 for문을 돌릴 수 있는 방법이 있어서 기록. for (int i = 1; i

    230411 공부기록

    * 예외(exception) 처리 프로그래머는 예외 상황을 미리 예측하고 처리할 수 있다. - 예외처리하는 문법( try-catch-finally ) try{ // 수행할 코드, 예외 발생 가능성이 있는 블록 ... } catch(예외클래스 변수명) { // 예외 처리 블록 ... } finally { // 예외 발생 여부에 상관없이 반드시 실행되는 블록. } 오류가 발생할 예상 부분을 try라는 블록으로 감싼 후 발생할 오류와 관련된 Exception을 catch라는 블록에서 처리한다. 오류가 발생했든 안했든 무조건 실행되는 finally라는 블록을 가질 수 있다. finally블록은 생략가능하다. try내에서 오류가 발생하면 오류가 발생한 시점부터 try블록의 마지막줄까지는 실행이 되지 않는다. 바로..

    230410 공부기록

    프로그래머스 코딩테스트 입문 문제풀기! 1. 중앙값 구하기 Arrays.sort() 이용 2. 최빈값 구하기 array의 최대값 구하기 array 안의 값으로 인덱스 만들어 배열 만들고 카운트하기 카운트수의 최대값 구하기 최빈값의 개수 구하기 최빈값의 개수에 따른 결과 도출 3. 머쓱이보다 키큰사람 정수배열 array, 키 height -> 배열에서 height보다 큰 정수 개수 출력 for문 이용 깃허브 시작! 친구가 매일 문제를 풀고 잔디심는다고 표현하던 그 깃허브를 나도 해보려고 했는데 내 생각처럼 그냥 코드를 복사해서 붙여넣는다던지 코드를 직접 적는다던지 해서 잔디를 심는게 아니었다...! git을 설치하고 github에 가입하고 명령 프롬프트를 쓰고 첫 잔디 심기 성공! 앞으로 하루에 1잔디 심..

    230409 공부기록

    프로그래머스 코딩테스트 입문 문제풀기! 1. 나이 출력 age -> 출생연도 출력 2. 두 수의 합 3. 두 수의 나눗셈 4. 각도기 각도에 따른 숫자 return. 예각:1,직각:2,둔각:3,평각:4 5. 짝수의 합 n 이하의 짝수의 합 구하기 6. 양꼬치 양꼬치 10인분당 음료수 1개. 서비스, n인분, k개 -> 비용 출력 7. 배열의 평균값 for문 이용 8. 분수의 덧셈 분수 덧셈하여 기약분수로 나타내기 문제가 나한테 좀 어려워서 풀고 뿌듯했다. 최대공약수를 어떻게 구하는지가 포인트였던 것 같다.

    230406 공부기록

    프로그래머스 코딩테스트 입문 문제풀기! 1. 두 수의 곱 2. 몫 구하기 3. 두 수의 차 4. 배열 두 배 만들기 for문 이용 5. 나머지 구하기 6. 숫자 비교하기 if, else문 이용

    230404 공부기록

    * 추상클래스 구체적이지 않은 클래스. - 정의하기 - 클래스 앞에 abstract 키워드를 이용해서 정의한다. - 미완성의 추상 메소드를 포함할 수 있다. - 일반 메소드도 가질 수 있다. - 추상 클래스는 인스턴스를 생성할 수 없다. - 추상 메소드 - 내용이 없는 메소드 , 즉 구현이 되지 않은 메소드 - 추상 메소드는 리턴 타입 앞에 abstract라는 키워드를 붙여야 한다. - 추상 클래스를 상속받는 클래스 생성 - 추상 클래스를 상속받은 클래스는 추상 클래스가 갖고 있는 추상 메소드를 반드시 구현해야 한다. - 추상 클래스를 상속받고, 추상 클래스가 갖고 있는 추상 메소드를 구현하지 않으면 해당 클래스도 추상 클래스가 된다. - 추상클래스의 사용용도 - 추상클래스의 사용용도는 추상 메소드가 포..

    230403 공부기록

    +Q. ) 메소드와 생성자.. 생긴건 비슷해 보이는데 뭐가 다를까? 메소드는 "함수"의 개념이다. 리턴타입이 없을 수도, 입력타입이 없을 수도, 입력타입과 리턴타입이 모두 없을 수도 있다. 상속받는 클래스도 메소드 사용가능 ok. 이름은 메소드의 성격이 보이게 직관적으로 짓는다. 생성자는 매개 변수는 존재할 수 있지만, 반환 값은 존재하지 않는다. 이름은 클래스와 같아야 하며 상속받는 클래스라 할지라도 생성자는 사용하지 못한다. 생성자의 역할은 클래스가 new에 의해 객체화될 때, 객체의 초기화를 위해 사용되는 코드. +Q. ) int number; 을 선언하고 따로 정의해주지 않았는데 어째서 0의 값을 가질까? 자바에서는 변수를 선언할 경우 초기화를 하지 않더라도 변수의 타입별로 기본값이 존재한다. -..

    230401 공부기록

    * 메소드 오버로딩 - 매개변수의 수, 타입이 다른 경우 동일한 이름으로 메소드를 여러 개 정의할 수 있다. * 생성자 오버로딩과 this - 매개변수의 수, 타입이 다른 경우 동일한 이름으로 생성자를 여러 개 생성할 수 있다. - this : 객체 자신을 가리키는 레퍼런스 변수, 자신의 객체에 접근할 때 사용. 주로 멤버변수와 매개변수의 이름이 동일할 때, 이를 구분하기 위해 사용. - this( )는 같은 클래스에서 생성자가 다른 생성자를 호출할 때 사용된다. - 주로 코드의 중복을 줄일 목적으로 사용됩니다. - this( )는 생성자 코드에서만 사용할 수 있습니다. - this( )는 생성자 코드안에서 사용될 때 첫번째 문장으로 다른 코드보다 가장 윗줄에 위치해야 합니다. * 패키지 - 패키지(pa..

    230331 공부기록

    * 생성자 public class Car { String name; int number; } public class CarExam { public static void main(String[] args) { Car c1 = new Car(); // Car() : 기본생성자 Car c2 = new Car(); } } - 모든 클래스는 인스턴스화 될 때 생성자를 사용한다. - 생성자는 리턴타입이 없다. - 생성자를 프로그래머가 만들지 않으면 매개변수가 없는 생성자가 컴파일할 때 자동으로 만들어진다. - 매개변수가 없는 생성자를 기본생성자라고 한다. - 생성자를 하나라도 프로그래머가 만들었다면 기본생성자는 자동으로 만들어지지 않는다. * 매개변수가 있는 생성자 public class Car2 { String ..