1. 오늘 학습한 내용
백준
1. 2161번 문제 - 카드1
2. 알게 된 내용
나는 연결리스트로 삭제/삽입을 하면서 진행하는 것을 생각했는데 다 풀고 나서 여러 사람들의 코드를 찾아보다보니 큐로 진행하신 것을 알게 되었다. 알고 있는 알고리즘들을 적극적으로 활용을 못했다. 자바에 큐를 이용하는 기능이 있다는 것도.. 잘 몰랐었는데 이번에 알고 간다.
[Java] 자바 Queue 클래스 사용법 & 예제 총정리
// 선언
Queue<Integer> queue = new LinkedList<>(); //int형 queue 선언, linkedlist 이용
// 큐에 값 추가하기
queue.add(1); // queue에 값 1 추가
queue.offer(3); // queue에 값 3 추가
// 큐 값 삭제하기
queue.poll(); // queue에 첫번째 값을 반환하고 제거 비어있다면 null
queue.remove(); // queue에 첫번째 값 제거
queue.clear(); // queue 초기화
// 맨 앞의 값 출력
queue.peek(); // queue의 첫번째 값 참조
나는 그동안
bw.write(String.format("%d\n",-1));
이런 식으로 String.format() 을 이용해서 출력하곤 했었는데, 이것보다 더 빠른 방법은
bw.write(-1 + "\n");
그냥 이렇게 메서드 사용 등등 없이 출력하는 것이다! 별 차이 없어보이지만 이 방법을 사용하면서 출력시간 단축에 관한 문제가 조금 해결되었다.
코드 참고 : [백준] 10828번 스택 - Java, 자바
3. 느낀 점
자료구조 관련 문제를 풀 때 무조건 배열로만 생각하지 말자! 큐 등등 내가 알고 있는 지식들을 잘 활용해보자! 사용법 등등은 구글링 해도 되니까 일단 내가 알고 있는 자료구조 지식들로도 응용이 가능한지를 고려해보자!
이번주는 정처기 시험이랑 겹쳐서 코딩 공부는 조금 뒤로 미루고 조금 막바지에 했는데 다음주부터는 미루지 않고 꼬박꼬박 해서 여유롭게 끝내자!