BFS하닥 Queue에 배열의 i,j값을 한쌍으로 저장할 경우가 여럿 생긴다.어떻게 넣을 것인가 1. Queue q = new LinkedList(); 2. Queue qN = new LinkedList(); Queue qM = new LinkedList(); 3. Queue q = new LinkedList(); static class Node{ int x,y; Node(int x, int y){ this.x = x; this.y = y; } } 이런 방법이 있을텐데성능은 아직 잘 모르겠다. 2번 비효율적일거같긴한데.. 자바신을 만나면 물어봐야겠다
Poll이나 Push 등을 쓰지않고addFirst, addLast, removeFirst, removeLast 를 이용하여 스택과 큐를 구현할 수 있다. import java.util.LinkedList;public class linkedList { public static void main(String[] args) {// TODO Auto-generated method stub LinkedList list = new LinkedList();for (int i = 1; i
알고리즘문제중 Joisino announces a number. If that number is written on the sheet, erase the number from the sheet; if not, write the number on the sheet. This process is repeated N times. 이때 set을 이용하여 for (int i = 0; i < n; i++) { temp = sc.nextInt(); if(set.contains(temp)) { set.remove(temp); }else { set.add(temp); } } contains 를 이용하여 체크를 할수 있겠지만 add() 메소드 자체적으로 boolean값을 반환한다.고로.. if ( !set.add(num)..
두 수중 큰수를 구하려면Math.max(a,b) 를 사용하면 된다. 만약 비교해야 할 수가 여러개라면? Math.max(a,b,c)는 사용할 수 없다. 그렇다고 Math.max(Math.max(a,b),c) ... 이렇게 할수는 있겠지만 비교할 수가 더 크다면 이것도 적합한 방법은 아닐 것이다. 1. int i[] = { 124, 634, 7, 5021525, 77, 8765, -356, 0 }; Arrays.sort(i); 2. LinkedList list1 = new LinkedList(); list1.add(3); list1.add(5); list1.add(11); list1.add(2); list1.add(7); Integer i = Collections.max(list1);(물론 ArrayLis..