본문 바로가기

알고리즘

[Programmers] Level2. 다리를 지나는 트럭 (Java) Queue의 개념을 알고있어야 풀이가 가능한 문제이다. 풀이 과정 다리가 비어있을때 큐에 트럭을 담아주고 트럭의 무게값을 변수에 합산해준다. 다리가 꽉차 있을경우 poll()을 사용하여 맨앞 트럭을 빼주고 무게값에서 빠진 트럭의 무게만큼 빼준다.(poll()을 사용하게 될경우 큐의 앞의 제거하고 반환해주게된다.) 두 가지 경우를 모두 벗어나고, 무게가 초과하는 경우 큐에 0을 담아주어 트럭을 한칸 밀어준다. 두 가지 경우를 모두 벗어나고, 무게가 초과하지 않는 경우 다리가 비었을때와 동일하게 큐에 트럭을 담아주고 무게값을 합산해준다. 풀이 코드 import java.util.LinkedList; import java.util.Queue; class Solution { public int solution(.. 더보기
[Programmers] Level1. 2016년 (Java) Level1. 2016년 문제설명 ) 풀이Code ) 더보기 class Solution { public String solution(int a, int b) { int[] month = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; int day = 0; String[] week ={"FRI","SAT","SUN","MON","TUE","WED","THU"}; String answer = ""; for (int i=0; i1 ? ((b-1)%7) : 0; // 일주일 단위로 나눈 나머지값 int weekIndex = 0; // 최종적으로 요일의 인덱스 // addDays를 해줬을때 한 주를 넘어가게되면 일요일부터 다시계산해준다. // 수요일인데 addDays가 .. 더보기
[Programmers] Level1. 완주하지 못한 선수 (Java) 문제설명 ) 풀이 CODE ) 더보기 import java.util.HashMap; class Solution { //두 개의 문자열 배열을 비교하여 중복되지않는 1개의 문자열 리턴 public String solution(String[] participant, String[] completion) { String answer = ""; //두개의 문자열 index 에 +1또는 -1을 해줄 Hash 선언 HashMap cnt = new HashMap(); //participant 의 인덱스에 맞춰 +1 for (String player : participant) { //getOrDefault 를 통하여 중복 검사 cnt.put(player, cnt.getOrDefault(player, 0) + 1); }.. 더보기
두 개 뽑아서 더하기 import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class Solution { public int[] solution(int[] numbers) { List list = new ArrayList(); for (int i=0; i 더보기
[JAVA] Baekjoon 그리디 알고리즘 11399번 : ATM 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int person = sc.nextInt(); //인원수 입력값 받음. int [] arr = new int[person]; int sum =0; for(int i=0;i 더보기