📑 1. 문제설명💡 2. 풀이과정이건 이중 for문 + Set + 정렬 문제이다.입출력예에서 중복값이 없기 때문에 중복을 허용하지 않는 자료형 해시셋을 사용해서 푼다. 1. 배열에서 이중 포문을 사용해서 두 수를 선택하는 모든 경우의 수를 구한다.2. 위에서 구한 수를 더해서 해시셋에 추가해서 중복제거한다.3. 해시셋 값을 오름차순 정렬한다.4. int[] 형태의 배열로 변환해서 반환한다. 이 때 stream을 사용한다.👨💻 3. 정답코드처음에 이중 for문의 범위를 잘못 잡았는데, 바깥 for문의 i 범위를 `i 이렇게 하면 노노❌ 왜냐하면 바깥 for문에서 i 이 경우 j 결국 바깥 for문 마지막 반복 (i == 마지막 인덱스)에서는 j가 더할 상대가 없기 때문에쓸모 없는 반복이 한 번 일..
this는 자바(Java)를 포함한 여러 객체지향 언어에서 객체 자기 자신을 가리키는 키워드로 알려져 있다. this는 현재 객체의 참조(reference)로서 지금 실행되고 있는 메서드를 소유하고 있는 인스턴스를 가리킨다. setter 메서드안에서 가장 쉽게 this의 활용법을 확인할 수 있다. public class Person { private String name; public void setName(String name) { this.name = name; }}this.name → 객체의 멤버 변수 namename → 메서드의 매개변수만약에 this를 안 쓰면 어떻게 될까?public void setName(String name) { name = name; /..
📑 1. 문제설명💡 2. 풀이과정이렇게 반환할 문자열의 길이가 고정되지 않은 경우는 배열을 못 쓰기 때문에StringBuilder을 써주는게 좋다. StringBuilder을 쓰면 마지막에 문자열을 반환할 때 toString() 으로 전환해야 한다.code를 인덱스에 따라 한 글자씩 돌면서 각 문자(char)이 1인지 아닌지 확인한다.1이면 mode 전환1이 아니면i) mode가 0일 때는 인덱스가 짝수면 해당 문자를 ret에 append함ii) mode가 1일 때는 인덱스가 홀수면 해당 문자를 ret에 append함ret.length()가 0이면 "EMPTY" 출력, 아니면 ret.toString() 출력👨💻 3. 정답코드class Solution { public String soluti..
📑 1. 문제설명💡 2. 풀이과정먼저 앞 3개의 항을 변수에 담는다.등차수열인지 등비수열인지 판별한다. b-a 랑 c-b가 같으면 등차수열이고 아니면 등비수열이다. 다음에 올 값 구하는 법 ▼등차수열이라면 common배열의 마지막 요소에 b-a 값을 더한다.등비수열이라면 common배열의 마지막 요소에 b/a 값을 곱한다.👨💻 3. 정답코드class Solution { public int solution(int[] common) { // 앞 3개의 항으로 등차수열인지 등비수열인지 판별 int a = common[0]; int b = common[1]; int c = common[2]; int index = common.lengt..
📑 1. 문제설명💡 2. 풀이과정길이 num 크기의 int[]배열 선언시작값을 구해서 연속된 숫자만큼 배열에 집에 넣는다이 때 시작값 구하는 공식은 `start = 평균 - (num - 1) / 2``start = total / n - (num - 1) / 2`이 때 (num - 1) / 2는 중앙값에서 왼쪽으로 얼마나 떨어져 있는지를 구하는 것이다.👨💻 3. 정답코드import java.util.*;class Solution { public int[] solution(int num, int total) { int[] answer = new int[num]; // 시작값 : (총합 - 개수의 중간값 합) / 개수 int start = to..
📑 1. 문제설명 입출력 예 설명입출력 예 #1[7, 77, 17]에는 7이 4개 있으므로 4를 return 합니다.입출력 예 #2 [10, 29]에는 7이 없으므로 0을 return 합니다.💡 2. 풀이과정배열 순환하면서 각 요소를 int → String 변환 후 `String.contains()` 메서드로 '7'이 몇 번 등장하는지 카운트 하는 코드를 짰다. class Solution { public int solution(int[] array) { int answer = 0; for (int i = 0; i 하지만 나처럼 하면 `77`이나 `777` 같은 중복 문자로 1번으로 카운트 된다. 👨💻 3. 정답코드class Solution { public i..
📑 1. 문제설명 💡 2. 풀이과정`Arrays.sort()`로 배열 정렬 하기 (오름차순 정렬됨)맨 마지막 두 요소 곱하기 이 때 Arrays.sort()는 새로운 배열을 반환하는게 아니고 원본 배열을 정렬한다. 그래서 변수에 담을 수 없다.맨 마지막 두 요소는 `numbers[numbers.length-1]` 과 `numbers[numbers.length-2]`인데 이렇게 하면 길기 때문에`int n = numbers.length`를 따로 빼 주면 코드가 간결해진다. 처음에 틀린 이유는 최댓값이 음수*음수일 때를 고려하지 않아서 테스트케이스 1을 통과하지 못했다.import java.util.*;class Solution { public int solution(int[] numbers) { ..