인프런 80

[JAVA] 알고리즘 : Queue- 응급실

import java.util.*; class Person{ int id; // 순서 int priority; // 위험도 public Person(int id, int priority){ this.id=id; this.priority=priority; } } public class Main { public int solution(int n, int m, int[] arr){ int answer=0; Queue Q=new LinkedList(); for(int i=0; itmp.priority){ // 맨 앞의 환자보다 위험도가 크면 Q.offer(tmp); // 큐의 끝에 맨 앞 환자를 추가 tmp=null; break; } } if(tmp!=null){ // 맨 앞 환자보다 우선순위 높은 환자가 없다..

ALGORITHM 2022.07.15

[JAVA] 알고리즘 : Queue- 교육과정설계

import java.util.*; public class Main { public String solution(String need, String plan){ String answer="YES"; Queue Q=new LinkedList(); for(char x : need.toCharArray()) Q.offer(x); // 큐에 필수 과목 세팅 for(char x : plan.toCharArray()){ if(Q.contains(x)){ // 큐에 있으면 필수과목 if(x!=Q.poll()) return "NO"; // 큐에 있는 첫 과목이 아니면 // poll()은 꺼내고 리턴받음 } } if(!Q.isEmpty()) return "NO"; // 큐가 비어있지 않으면 return answer; }..

ALGORITHM 2022.07.14

[JAVA] 알고리즘 : Stack- 후위식 연산(postfix)

import java.util.*; public class Main { public int solution(String str) { int answer=0; Stack stack = new Stack(); for(char x : str.toCharArray()){ if(Character.isDigit(x)) stack.push(x-48); // 숫자라면 스택에 추가 else{ int rt=stack.pop(); int lt=stack.pop(); // 늦게 꺼내진 숫자가 왼쪽에 위치 if(x=='+') stack.push(lt+rt); else if(x=='-') stack.push(lt-rt); else if(x=='*') stack.push(lt*rt); else if(x=='/') stack.pus..

ALGORITHM 2022.07.12

[JAVA] 알고리즘 : Stack- 올바른 괄호

import java.util.*; public class Main { public String solution(String str){ String answer = "YES"; Stack stack = new Stack(); for(char x : str.toCharArray()){ if(x=='(') stack.push(x); else{ if(stack.isEmpty()) return "NO"; // 닫는 괄호가 많은 상황 stack.pop(); } } if(!stack.isEmpty()) return "NO"; // 여는 괄호가 많은 상황 return answer; } public static void main(String[] args) { Main T = new Main(); Scanner sc =..

ALGORITHM 2022.07.11
반응형