코딩 테스트(JAVA) 81

[LeetCode] 785. Is Graph Bipartite?

https://leetcode.com/problems/is-graph-bipartite/description/ Is Graph Bipartite? - LeetCode Can you solve this real interview question? Is Graph Bipartite? - There is an undirected graph with n nodes, where each node is numbered between 0 and n - 1. You are given a 2D array graph, where graph[u] is an array of nodes that node u is adjacent to. Mo leetcode.com 각 노드의 번호가 0에서 n-1 사이인 노드가 n개인 방향성 없..

[programmers] 양과 늑대

https://school.programmers.co.kr/learn/courses/30/lessons/92343 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2진 트리 모양 초원의 각 노드에 늑대와 양이 한 마리씩 놓여 있습니다. 이 초원의 루트 노드에서 출발하여 각 노드를 돌아다니며 양을 모으려 합니다. 각 노드를 방문할 때마다 해당 노드에 있던 양과 늑대가 당신을 따라오게 됩니다. 이때, 늑대는 양을 잡아먹을 기회를 노리고 있으며, 당신이 모은 양의 수보다 늑대의 수가 같거나 더 많아지면 바로 모든 양을 잡아먹어 버립니다. 당신은 중간에 양이 늑대..

[programmers] 두 큐 합 같게 만들기

https://school.programmers.co.kr/learn/courses/30/lessons/118667 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 길이가 같은 두 개의 큐가 주어집니다. 하나의 큐를 골라 원소를 추출(pop)하고, 추출된 원소를 다른 큐에 집어넣는(insert) 작업을 통해 각 큐의 원소 합이 같도록 만들려고 합니다. 이때 필요한 작업의 최소 횟수를 구하고자 합니다. 한 번의 pop과 한 번의 insert를 합쳐서 작업을 1회 수행한 것으로 간주합니다. 큐는 먼저 집어넣은 원소가 먼저 나오는 구조입니다. 이 문제..

등비수열의 합

class Solution { public int solution(int n) { int firstTerm = 1; // 첫 항 int commonRatio = 2; // 공비 int sum = calculateGeometricSeriesSum(firstTerm, commonRatio, n); int moduloSum = sum % 1_000_000_007; return moduloSum; } // 등비수열의 합 계산 함수 public int calculateGeometricSeriesSum(int firstTerm, int commonRatio, int n) { int MOD = 1_000_000_007; int sum = 0; int currentTerm = firstTerm; for (int i =..

짝수는 싫어요

https://school.programmers.co.kr/learn/courses/30/lessons/120813?language=java 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 정답 코드 import java.util.Collections; import java.util.ArrayList; class Solution { public ArrayList solution(int n) { // 매개변수 n을 for문을 돌면서 홀수만 배열에 담는다 ArrayList answer = new ArrayList(); for(int i =1; i

[백준 22864번] 피로도

문제 하루에 한 시간 단위로 일을 하거나 일을 쉬어도 된다. 하루에 한 시간 일하면 피로도는 A$A$ 만큼 쌓이고 일은 B$B$ 만큼 처리할 수 있다. 만약에 한 시간을 쉰다면 피로도는 C$C$ 만큼 줄어든다. 단, 피로도가 음수로 내려가면 0으로 바뀐다. 당연히 일을 하지 않고 쉬었기 때문에 처리한 일은 없다. 피로도를 최대한 M$M$ 을 넘지 않게 일을 하려고 한다. M$M$ 를 넘기면 일하는데 번아웃이 와서 이미 했던 일들도 다 던져버리고 일을 그만두게 된다. 번아웃이 되지 않도록 일을 할때 하루에 최대 얼마나 일을 할 수 있는지 구해보자. 하루는 24시간이다. 입력 첫 번째 줄에 네 정수 A$A$, B$B$, C$C$, M$M$이 공백으로 구분되어 주어진다. 맨 처음 피로도는 0이다. 출력 하루에..