일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Eclipse
- HTML
- SQL
- 배열
- Java
- Queue
- Naver
- 정렬
- hash
- 코딩테스트
- 해쉬
- Coding
- string
- 우선순위큐
- HashMap
- 자료구조
- Stack
- CSS
- compare()
- coding test
- javac
- 스파르타코딩클럽
- Python
- 프로그래머스
- programmers
- 자바
- HashSet
- point queue
- 네이버
- array
- Today
- Total
목록Stack (3)
youngik
먼저 위 문제를 분석해봤을 때, 1. (중요도, 위치값)를 가진 Point쌍의 값을 queue에 넣는다. 2. 각 cycle마다 현재 남은 queue의 중요도가 가장 큰 값과 비교를 한다. 3. 맨 앞에 값을 poll() 해봤을 때 max값과 일치하면 output queue에 넣고 작으면 다시 queue에 add()한다. (*1-3번의 작업은 priority 큐가 비어있을 때 까지 반복) 4. 1-3번의 작업이 끝나면 output queue에서 location과 일치하는 위치값을 출력한다. (몇번째로 출력되는지) -> 예제 문제에서 봤을 때, 동일한 값이라도 출력되는 순서가 다르기 때문에 원래 queue에서 위치값을 같이 저장했다. -> 몇번째로 인쇄됐는지 결과값을 물어볼때 0이 아닌 1부터 시작하기 때..
먼저 위 문제를 분석해보았을 때 1. 배열의 i번째의 값에서 i+1의 값을 차례대로 비교해 나간다. 2. 비교를 해서 그 값보다 같거나 클때 count를 1씩 증가시킨다. 이 문제는 처음에 보고 아? 쉽네라는 생각으로 10분도 안되서 코드를 짰던 것 같다. 굳이 배열이 주어지는데 스택과 큐로 구현할 필요도 없어보여서 테스트 케이스를 성공하고 제출을 했는데, 왠걸,, 1개의 case빼고는 다 실패하지 않는가?? 처음 짠 코드 부분인데, 왜 안되지? 라는 생각으로 질문에 들어가보니 입출력 예제의 3초때를 잘 보아야 한다라는 말이 있었고, 나는 결과값이 (전체비교횟수 - i보다 작은 수)라고 생각했었는데 그것이 아닌 (i보다 작은 수가 있었을 때에는 그 거리만큼 값)을 출력하는 것이었다. (*말장난,,) 그래..
이번 문제는 처음부터 삽질을 많이 한 결과로 볼수가 있다ㅠ stack & queue에 대한 개념을 먼저 잡아야 했고, 다리를 통과하는 것은 stack보다는 queue가 더 적합한 것 같아서 queue를 통해 구현하기로 했다. *기본적인 stack 선언 Queue temp = new LinkedList(); Queue는 LikedList 형태로 구현이 되어있고, array와 같은 개별적으로 존재하는 것이 아닌 값들이 서로 연결되어있어 메모리의 빈 공간을 차지하지 않는다는 장점이 있다. 하지만 장점이 있으면 단점이 있다는 것인데, 자료값을 search 하거나, 삽입, 삭제 등을 할 때 시간이 걸린다. array는 int arr[4] = 0; 같이 직관적으로 삽입할 수 있으니!! ▶위 문제를 먼저 분석해본결과..