본문 바로가기

Algorithm/Problem_프로그래머스55

프로그래머스(프린터, 124 나라의 숫자, 스킬트리) - Java [프린터] * 로직 해당 프린터의 index와 우선순위를 관리하는 클래스를 생성한다 큐에 차례대로 넣어준다 큐를 하나씩 꺼내어 남은 요소 중 우선순위가 더 큰 부분이 존재한다면 해당 큐를 뒤로 다시 넣는다 존재하지 않는다면 해당 정보를 리스트에 넣는다 리스트 중에서 찾고자 하는 index(location)을 찾고 답을 출력한다 //프린터 import java.util.ArrayList; import java.util.LinkedList; import java.util.Queue; class PrinterInfo { public int idx; public int priority; public PrinterInfo(int idx, int priority) { this.idx = idx; this.prior.. 2020. 4. 2.
알고리즘(체육복, 2016년, 가운데 글자 가져오기, 같은 숫자는 싫어) [체육복] * 로직 1~n명까지 모두 한 벌씩 가지고 있다고 초기화한다 reserve가 가능한 학생에 대해 한 벌씩 더 추가해준다 lost인 학생에 대해 한 벌씩 제거해준다 => 이를 통해 옷이 없는 인원과 여벌이 있는 학생에 대한 리스트를 구할 수 있다 옷을 줄 수 있는 학생을 한 명씩 뽑아 lost 리스트에서 -1, +1 범위 내에 존재하는 학생이 존재한다면 제공을 해주고 마킹한다 //체육복 import java.util.Arrays; import java.util.LinkedList; public class Problem_GymSuit { public static void main(String[] args) { int n = 5; int[] lost = {2, 4}; int[] reserve = {.. 2020. 4. 1.
알고리즘(자동 완성) * 알고리즘 트라이 * 로직 트라이 구조를 통해 입력된 단어들의 횟수를 카운팅 해놓는다 각 단어들을 한 글자씩 검색 해당 글자가 1번만 사용되었다면 이후의 글자도 하나만 존재하기 때문에 해당 사이클 횟수를 리턴 만약 검색하려는 단어의 마지막 글자까지 왔다면 => 해당 단어의 수를 리턴(사이클 횟수와 같음) 위 과정을 반복해 답을 누적한다 //자동완성 class Trie { public NodeInfo root; public Trie() { this.root = new NodeInfo(' '); } public void insert(String word) { NodeInfo current = root; for(int s=0; s 2020. 3. 31.