📑 1. 문제설명💡 2. 풀이과정1. score 배열을 순회하며 영어 점수와 수학 점수의 평균을 구한다.score[i][0] = 영어 점수score[i][1] = 수학 점수평균: (score[i][0] + score[i][1]) / 2.0이 때 2로 나누면 정수 계산이 되므로 2.0 으로 나누어야 double 타입이 반환된다. 이것을 double[] avg 배열에 담는다. 2. 등수 계산하기각 학생 평균을 기준으로 자기보다 높은 평균 점수가 몇 개인지 세어서 rank[i]에 저장한다.이 때 cnt가 1부터 시작한다.cnt = 1 일때 1등이면 1등보다 높은 점수인 사람은 0명이므로 1+0 = 1cnt = 1 일때 2등이면 2등보다 높은 점수인 사람은 1명이므로 1+1 = 2이 값을 int[] rank..
📑 1. 문제설명💡 2. 풀이과정comparator로 커스텀 정렬을 할건데 이 때 int[] 배열을 먼저 Integer[] 로 변환해 주어야만 comparator을 쓸 수 있다.comparator 쓸 때는 아래 형식과 정렬 기준만 기억하고 있으면 된다. Arrays.sort(배열, (a, b) -> { 기준에 따라 return 값 설정 }); Comparator 정렬기준반환값뜻정렬 결과음수 (a a가 b보다 앞에 온다0a == b순서 그대로양수 (> 0)a > bb가 a보다 앞에 온다오름차순: a - b 내림차순: b - a 절댓값: Math.abs(a) - Math.abs(b) 복합 조건: if/else 사용 1. 오름차순 정렬 (작은 수 → 큰 수)Arrays.sort(arr, (a,..
📑 1. 문제설명💡 2. 풀이과정아주 쉽게 풀 수 있는 문제 같았다.유클리드 호제법으로 a와 b의 최대공약수(GCD)를 구하기이 때 최대공약수(gcd-greatest common divisor)구하는 메서드는 따로 선언해 주었다.분모 b를 최대공약수로 나눈 값을 2또는 5로 나눈 나머지가 0이면 return 1, 아니면 return 2 처음 제출한 코드class Solution { public int gcd(int a, int b) { if (b == 0) return a; return gcd(b, a % b); } public int solution(int a, int b) { int g = gcd(a, b); int num = (i..
📑 1. 문제설명💡 2. 풀이과정선분이 겹치는 구간을 계산하려면, 각 좌표마다 선분이 몇 개 겹쳤는지 알아야 하므로, 좌표를 인덱스로 변환해서 카운팅 배열로 관리하는 방식으로 풀었다. 이 때 선언한 배열을 line[] 이라고 명명했는데 배열 크기 201인 이유는 문제에서 좌표의 범위가 -100부터 100까지이기 때문이다. 총 201개의 좌표가 존재한다. (0포함)자바 배열 인덱스는 0부터 시작하기 때문에 만약에 200칸만 선언하면 199번째 인덱스밖에 표현하지 못한다.그래서 크기 201짜리 int 형 배열을 선언해준다. 여기서 배열에서 선분을 표시힐 영역은 실제 lines에 들어있는 요소에서 각각 +100을 해주어야 한다. 왜냐면 배열에 마이너스 인덱스가 없기 때문에 -100+100을 해서 -100을..
📑 1. 문제설명💡 2. 풀이과정1. spell의 각 요소들을 이어 붙여 String으로 만든다. - `String.join("", spell)` 2. 위 String을 char[] 배열로 변환해서 오름차순 정렬한 후 다시 String으로 변환한다.3. dic 배열의 각 단어를 검사한다.이 때 단어의 길이가 같지 않으면 다음 단어로 건너뛴다.각 단어를 문자 정렬한다. (문자 배열로 전환 후 오름차순 정렬 한 뒤 다시 String으로 변환)문자열인 정렬된 spell 과 dic의 각 단어를 비교한 후 동일하다면 1 반환아니면 2 반환👨💻 3. 정답코드import java.util.*;class Solution { public int solution(String[] spell, String[] ..
📑 1. 문제설명💡 2. 풀이과정주어진 sides 배열을 오름차순 정렬한다.더 짧은 값을 shorter, 더 긴 값을 longer 변수에 저장한다.삼각형이 성립하려면, 가장 긴 변 주어진 두 변 외에 하나의 변 x를 더해 삼각형을 만들 수 있는 경우를 두 가지 상황으로 나누어 생각해볼 수 있다. 1) x가 가장 긴 변인 경우 2) x가 가장 짧은 변 or 중간일 경우 x의 가능한 정수 범위는 아래와 같다. (longer - shorter + 1) ≤ x 👨💻 3. 정답코드import java.util.*;class Solution { public int solution(int[] sides) { Arrays.sort(sides); // 배열 오름차순 정렬 int ..
📑 1. 문제설명💡 2. 풀이과정my_string을 순회하며 char타입으로 변환한 후 Character.isDigit(c)로 숫자 판별숫자가 연속되어 있을 수 있기 때문에, "34" 같은 두 자리 이상 숫자도 고려해야 한다. 그래서 StringBuilder를 사용해서 my_string을 왼쪽부터 하나씩 보면서 숫자를 모으고, 아래처럼 공백이거나 문자가 나오면 그 전에 쌓아둔 숫자들을 처리하고 다시 StringBuilder의 길이를 0으로 초기화한다. class Solution { public int solution(String my_string) { StringBuilder sb = new StringBuilder(); int answer = 0; for(..