[프로그래머스, Java] 카드 뭉치
·
CodingTest/Programmers
💡풀이import java.util.ArrayDeque;import java.util.List;import java.util.Queue;class Solution { public String solution(String[] cards1, String[] cards2, String[] goal) { Queue q1 = new ArrayDeque(List.of(cards1)); Queue q2 = new ArrayDeque(List.of(cards2)); for (String word : goal) { if (!q1.isEmpty() && q1.peek().equals(word)) { q1.poll(); ..
[프로그래머스, Java] 명예의 전당 (1)
·
CodingTest/Programmers
❌풀이import java.util.ArrayList;import java.util.Collections;import java.util.List;class Solution { public int[] solution(int k, int[] score) { // list를 만들어서 값을 계속 집어넣는다 // index 개수가 k 보다 작다면 그냥 집어넣고 정렬 -> 마지막 숫자 result에 저장 // index 개수가 k 보다 크거나 같다면 정렬 -> 마지막 숫자 자르기 -> k번째 숫자 result에 저장 List list = new ArrayList(); List answer = new ArrayList(); for (in..
[프로그래머스, Java] 문자열 내 마음대로 정렬하기
·
CodingTest/Programmers
💡풀이 1- Comparator 람다식 활용import java.util.*;class Solution { public String[] solution(String[] strings, int n) { Arrays.sort(strings, (s1, s2)->{ int result = Character.compare(s1.charAt(n), s2.charAt(n)); if(result == 0){ result = s1.compareTo(s2); } return result; }); return strings; }}💡풀이 2- Comparator 메서드 ..
[프로그래머스, Java] 콜라 문제
·
CodingTest/Programmers
💡풀이class Solution { public int solution(int a, int b, int n) { // n개의 콜라는 a로 나눈다 20/2 = 10 // n 에는 n%a 만 남긴다. // 나눈 몫과 b를 곱하여 n에 더하고 total에도 더한다. // n 이 a보다 작아질때까지 반복한다. int total = 0; while (n >= a) { int count = n / a; n %= a; int newCoke = count * b; total += newCoke; n += newCoke; } ..
[프로그래머스, Java] K번째수
·
CodingTest/Programmers
💡풀이import java.util.ArrayList;import java.util.Arrays;import java.util.List;// commands 별로 분기한다. (i j k)// i ~ j 번째 배열로 잘라낸다.// 잘라낸 배열을 오름차순 정렬한다.// k 번째 원소를 찾아 answer에 저장한다.class Solution { public int[] solution(int[] array, int[][] commands) { List answer = new ArrayList(); for (int[] command : commands) { int i = command[0] - 1; // index로 변환하기 위해 각각 -1 적용 ..
[Java] 배열 복사 메서드 간단 정리
·
Backend/Java
주요 배열 복사 메서드Java에서 배열을 복사하는 주요 메서드들을 간단히 정리하면 다음과 같습니다. 1. Object.clone()int[] original = {1, 2, 3, 4, 5};int[] copy = original.clone();배열 전체를 깊은 복사하는 가장 보편적인 방법새로운 메모리 공간에 값을 복사하므로 원본과 독립적2. Arrays.copyOf()int[] original = {1, 2, 3, 4, 5};int[] copy = Arrays.copyOf(original, original.length);배열을 처음부터 지정한 길이만큼 복사길이가 원본보다 크면 나머지는 0으로 채워짐Arrays.copyOf() 범위 초과 예시int[] original = {1, 2, 3};int[] cop..