✏️ 문제문제인하은행에는 ATM이 1대밖에 없다. 지금 이 ATM앞에 N명의 사람들이 줄을 서있다. 사람은 1번부터 N번까지 번호가 매겨져 있으며, i번 사람이 돈을 인출하는데 걸리는 시간은 Pi분이다.사람들이 줄을 서는 순서에 따라서, 돈을 인출하는데 필요한 시간의 합이 달라지게 된다. 예를 들어, 총 5명이 있고, P1 = 3, P2 = 1, P3 = 4, P4 = 3, P5 = 2 인 경우를 생각해보자. [1, 2, 3, 4, 5] 순서로 줄을 선다면, 1번 사람은 3분만에 돈을 뽑을 수 있다. 2번 사람은 1번 사람이 돈을 뽑을 때 까지 기다려야 하기 때문에, 3+1 = 4분이 걸리게 된다. 3번 사람은 1번, 2번 사람이 돈을 뽑을 때까지 기다려야 하기 때문에, 총 3+1+4 = 8분이 필요하게..
✏️ 문제 🔢 알고리즘 #힙 #자료구조 🤯 풀이 방법 1. 자바의 힙은 PriorityQueue를 이용해서 구현한다.2. 메소드는 offer, add, poll, peek 등 사용3. 마지막 원소만 남았을 때 -1 출력 예외 처리 잊지 않기4. 프로그래머스 AI가 유용하다 👾 구현 코드 (자바)import java.util.*;class Solution { public int solution(int[] scoville, int K) { int answer = 0; PriorityQueue minHeap = new PriorityQueue((a, b) -> a - b); for (int num : scoville) { ..
✏️ 문제문제여러 명의 학생이 식사하기 위하여 학교 식당을 향해 달려가고 있다. 학교 식당에 도착한 학생은 식당 입구에 줄을 서서 대기한다. 학교 식당에 먼저 도착한 학생이 나중에 도착한 학생보다 식당 입구의 앞쪽에서 대기한다. 식사는 1인분씩 준비된다. 식사 1인분이 준비되면 식당 입구의 맨 앞에서 대기 중인 학생 1명이 식당으로 들어가서 식사를 시작한다. 식사를 시작한 학생은 항상 식사를 마친다.학교 식당에서는 두 가지 메뉴가 제공되고 각각의 학생은 두 가지 메뉴 중에서 본인이 좋아하는 메뉴를 결정한 상태다. 학생이 학교 식당에 도착하고 식사가 준비되는 n개의 정보가 저장된 S가 주어진다. S에 저장된 첫 번째 정보부터 n번째 정보까지 순서대로 처리한 경우, 본인이 좋아하는 메뉴를 먹은 학생 목록 A..
의존 자동 주입 의존을 주입할 대상에 @Autowired 애노테이션을 붙인다.@Autowired 애노테이션을 필드나 세터 메서드에 붙이면 스프링은 타입이 일치하는 빈 객체를 찾아서 주입한다.자동 주입 가능한 빈이 두 개 이상이면 @Qualifier 애노테이션 이용해서 한정한다.빈 설정에 @Qualifier 애노테이션이 없으면 빈의 이름을 한정자로 지정한다. 컴포넌트 스캔스프링이 직접 클래스를 검색해서 빈으로 등록해주는 기능컴포넌트 스캔 대상 애노테이션@Component@Controller@Service@Repository@Aspect@Configuration 빈의 범위를 프로토타입으로 지정하면 빈 객체를 구할 때마다 매번 새로운 객체 생성@Scope("prototype")프로토타입 범위 빈 사용할 때에..
✏️ 문제문제N×M크기의 직사각형이 있다. 각 칸에는 한 자리 숫자가 적혀 있다. 이 직사각형에서 꼭짓점에 쓰여 있는 수가 모두 같은 가장 큰 정사각형을 찾는 프로그램을 작성하시오. 이때, 정사각형은 행 또는 열에 평행해야 한다.입력첫째 줄에 N과 M이 주어진다. N과 M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 수가 주어진다.출력첫째 줄에 정답 정사각형의 크기를 출력한다. 🔢 알고리즘 #완전탐색 #구현 #브루트포스 🤯 풀이 방법가장 작은 정사각형은 1x1 크기이므로 기준을 잡고 2x2 정사각형부터 탐색한다.정사각형 한 변의 최대값은 N과 M 중 작은 값이다.2에서 N과 M중 작은 값까지 정사각형의 길이 기준으로 for문을 돌리고,그 안에서 시작점 범위를 정해 이중 for문을..
✏️ 문제문제지민이는 자신의 저택에서 MN개의 단위 정사각형으로 나누어져 있는 M×N 크기의 보드를 찾았다. 어떤 정사각형은 검은색으로 칠해져 있고, 나머지는 흰색으로 칠해져 있다. 지민이는 이 보드를 잘라서 8×8 크기의 체스판으로 만들려고 한다.체스판은 검은색과 흰색이 번갈아서 칠해져 있어야 한다. 구체적으로, 각 칸이 검은색과 흰색 중 하나로 색칠되어 있고, 변을 공유하는 두 개의 사각형은 다른 색으로 칠해져 있어야 한다. 따라서 이 정의를 따르면 체스판을 색칠하는 경우는 두 가지뿐이다. 하나는 맨 왼쪽 위 칸이 흰색인 경우, 하나는 검은색인 경우이다.보드가 체스판처럼 칠해져 있다는 보장이 없어서, 지민이는 8×8 크기의 체스판으로 잘라낸 후에 몇 개의 정사각형을 다시 칠해야겠다고 생각했다. 당연히..