본문 바로가기

java

(62)
TIL 240923 - 알고리즘 6회차 약수의 개수와 덧셈문제 설명 두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 1 ≤ left ≤ right ≤ 1,000 나의 풀이class Solution { public int solution(int left, int right) { int answer = 0; int count = 0; for (int i=left;i 나는 반복문을 통해서 나누어 떨어졌을 때 약수이다 라는 로직을 사용해서 풀었다. 다른사람의 풀이중에, 어떤 숫자가 제곱수이면(1,4,9,16 등등) 이 수의 약수의 개수는 ..
Java - 다형성 상속성 캡슐화 다형성 추상화Java 이론에서의 다형성에 대해서 자세히 알아보자. 1. 다형성 다형성은 "여러 형태를 가질 수 있는 능력" 이라는 의미이다. 프로그래밍에서는 같은 이름의 메서드가 다른 방식으로 동작할 수 있게 해주는 기능을 말한다. 쉽게 말하면, "같은행동을 하지만, 각기 다른방식으로 실행되는 것을 다형성"이라고 한다 구체적으로 얘기하면, 상위 클래스 타입의 참조변수를 통해서 하위 클래스의 객체를 참조할 수 있도록 만든것을 의미한다. Java에서는 주로 두 가지 형태로 구현된다. 메서드 오버로딩(Method Overloading): 같은 이름의 메서드가 매개변수의 타입이나 개수에 따라 다르게 동작하는 것예)더보기class MathUtils { // 정수의 합 int add(int..
TIL 240920 - 트러블슈팅3 Lv 4 숫자야구 게임게임 난이도 조절 1. 사용자로부터 난이도를 입력받고, 그에 따라 숫자의 자릿수를 조정할 수 있습니다. 2. 자리수는 3, 4, 5 자리 숫자 중에서 선택할 수 있습니다. (3~5 이외의 값에 대해서는 예외처리) 3. 자리수를 입력하면 자동으로 게임이 실행됩니다브레인 스토밍 위 사진에서의 방식은, 처음 프로그램 실행 후 난이도를 설정해놓고 게임을 불러오는 방식입니다. 1. 처음 시작후 0번을 눌러 게임 난이도를 선택 할수 있게 합니다. 2. 유저가 선택한 자릿수를 참조한 이후에 난수를 생성합니다. 3. 난수는 RandomNum 클래스에서 유저의 입력을 참조하여 3자리 난수를 만들지, 4자리 난수를 만들지, 5자리 난수를 만들지 확인 후 생성합니다. 4. 난수를 바탕으로 게임을 자동으..
TIL 240920 - 알고리즘 4회차 제일 작은 수 제거하기문제 설명 정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다. 제한 조건 arr은 길이 1 이상인 배열입니다. 인덱스 i, j에 대해 i ≠ j이면 arr[i] ≠ arr[j] 입니다.나의 코드 import java.util.ArrayList;import java.util.Collections;import java.util.List;import java.util.Arrays;class Solution { public int[] soluti..
TIL 240919 - 트러블슈팅2 지난번 Lv 1~2 에 해당되는 숫자야구 게임의 트러블슈팅이 끝난뒤, 출력개선만 진행하였습니다.게임이 시작하면 main 메서드에서 유저의 입력을 int로 받은뒤 1, 2, 3에 따라 선택할 수 있도록 main 메서드 자체를 수정하는 것으로 Lv 2 게임기는 마무리 되었습니다. 오늘은 Lv 3 계산기 제작과 발생했던 문제들에 관해 다뤄보려고 합니다.Lv 3 숫자야구 게임새로 추가되는 기능 게임기록 통계 1. 지금 시도하는 게임이 몇번째 게임인지 기록 2. 사용자가 정답을 맞힐때 까지의 시도횟수를 기록하고 게임이 끝났을 때, 총 시도 횟수를 출력 3. 프로그램 시작 및 정답을 맞히는 경우, "환영합니다~ 3. 종료하기"와 같은 안내문구 출력 4. 2를 입력하면 게임의 기록들과 시도횟수를 출력 출력개선 1. ..
TIL 240918 -알고리즘 2회차 알고리즘 연습!두 정수 사이의 합문제 설명 두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요. 예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다. 제한 조건 a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요. a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다. a와 b의 대소관계는 정해져있지 않습니다.입출력 예abreturn35123335312저의 코드는 Math의 abs()메서드를 사용해서 길이를 구해서 진행했습니다.import java.lang.Math;class Solution { public long solution(int a, int b) { ..
Java - 캡슐화 상속성 캡슐화 다형성 추상화1. 캡슐화?특정 객체 안에 관련된 속성(필드)과 기능(메서드)을 하나의 캡슐로 만들어 '데이터를 외부로부터 보호하는 것'데이터 보호내부적으로만 사용되는 데이터에 대한 불필요한 외부 노출을 방지장점: 정보은닉(data hiding) 외부로부터 객체의 속성과 기능이 함부로 변경되지 못하게 하고, 데이터가 변경되어도 다른 객체에 영향을 주지 않아서 독립성 확보 가능 유지보수와 코드 확장 시에도 오류의 범위를 최소화 할 수 있음. 캡슐화를 위한 주요 수단 접근제어자(Access Modifier), getter, setter 2. 패키지?특정한 목적을 공유하는 클래스와 인터페이스의 묶음 패키지는 클래스들을 그룹단위로 묶어 효과적으로 관리하기 위한 목적으로 사용 자바에서 패키지는 물리적..
TIL 240913 - 알고리즘 1회차 매일 하고있는 프로그래머스 알고리즘 공부 난 코딩 초보이기 때문에, 아직은 쉬운 알고리즘만 공부하고 있다. 오늘 풀었던 2문제 작성하려고 한다. 정수 내림차순으로 배치하기  문제 설명 함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다. 제한 조건n은 1이상 8000000000 이하인 자연수입니다.  입출력 예 n return118372 873211첫번째 시도class Solution { public long solution(long n) { long answer = 0; String str =""+n; int[] Arra..