🔍 아이디어 ✔️ 반복문의 시작에서 정답요건을 검증한다. ✔️ 요건에 충족되지 않은 경우, 합이 큰 쪽에서 작은 쪽으로 자신의 배열 요소를 넘겨준다. ✔️ 한 쪽 배열의 크기가 0이 되어도 정답이 나오지 않았거나, count가 비정상적으로 커진 경우는 체크해서 해결 불가능한 케이스로 처리한다. import java.util.*; class Solution { public long solution(int[] queue1, int[] queue2) { Queue q1 = new LinkedList(); Queue q2 = new LinkedList(); long sum_q1 = 0; long sum_q2 = 0; for (int i : queue1) { sum_q1 += (long) i; q1.add((lo..
코딩테스트 연습 - 의상 | 프로그래머스 스쿨 (programmers.co.kr) import java.util.*; class Solution { private static final List caseList = new ArrayList(); public int solution(String[][] clothes) { Map map = new HashMap(); for (String[] c : clothes) { String type = c[1]; String name = c[0]; if (!map.containsKey(type)) { map.put(type, new ArrayList()); } map.get(type).add(name); } if (map.size() == 30) { return 107..
문제링크 : https://school.programmers.co.kr/learn/courses/30/lessons/181187 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr class Solution { public long solution(int r1, int r2) { long answer = 0; // 그래프의 양인 부분에서 조건에 일치하는 점의 개수를 구하고 거기에 4를 곱한 값이 정답 for (long i = 1; i
문제링크: https://school.programmers.co.kr/learn/courses/30/lessons/154538 import java.util.*; class Solution { public int solution(int x, int y, int n) { // set으로 선언해서 같은 값들이 중복생성 되는 것 방지 -> 경우의 수 낮추기 HashSet set = new HashSet(); // 초기값 대입 set.add(x + n); set.add(x * 2); set.add(x * 3); int count = 1; // x와 y가 같은 경우는 count = 0 if (x == y) { return 0; } while (set.size() > 0) { if (set.contains(y)) ..
링크: https://school.programmers.co.kr/learn/courses/30/lessons/81302 import java.util.*; class Solution { public int[] solution(String[][] places) { int[] answer = new int[places.length]; int count = 0; for (String[] place : places) { char[][] cp = new char[5][5]; for (int i = 0; i < 5; i++) { cp[i] = place[i].toCharArray(); } List p_pos = new ArrayList(); for (int i = 0; i < 5; i++) { for (int j..
import java.util.*; class Solution { private long[] getCrsPositions(int[] a, int[] b) { double A = a[0], B = a[1], E = a[2], C = b[0], D = b[1], F = b[2]; double x = 0; if (A * D - B * C == 0) { return null; } if (((B * F) - (E * D)) != 0 && ((A * D) - (B * C)) != 0) { x = ((B * F) - (E * D)) / ((A * D) - (B * C)); } double y = 0; if (((E * C) - (A * F)) != 0 && ((A * D) - (B * C)) != 0) { y = (..
import java.util.*; class Solution { public int[] solution(int n) { int[][] arr = new int[n][n]; int nu = 1; int d = 0; int w = 0; int mn = 0; int turnPoint = n; int turnCount = 1; String[] modes = { "down", "right", "up" }; int endPoint = 0; for (int q = 1; q < n + 1; q++) { endPoint += q; } while (true) { if (modes[mn].equals("down")) { arr[d][w] = nu; d += 1; } else if (modes[mn].equals("righ..
def solution(cap, n, deliveries, pickups): answer = 0 deli_cap = 0 pick_cap = 0 for i in range(n-1, -1, -1): count = 0 deli_cap -= deliveries[i] pick_cap -= pickups[i] while deli_cap < 0 or pick_cap < 0: deli_cap += cap pick_cap += cap count += 1 answer += (i + 1) * 2 * count return answer