본문 바로가기

자료구조4

[백준] 자바 17608 막대기 문제 래 그림처럼 높이만 다르고 (같은 높이의 막대기가 있을 수 있음) 모양이 같은 막대기를 일렬로 세운 후, 왼쪽부터 차례로 번호를 붙인다. 각 막대기의 높이는 그림에서 보인 것처럼 순서대로 6, 9, 7, 6, 4, 6이다. 일렬로 세워진 막대기를 오른쪽에서 보면 보이는 막대기가 있고 보이지 않는 막대기가 있다. 즉, 지금 보이는 막대기보다 뒤에 있고 높이가 높은 것이 보이게 된다. 예를 들어, 그림과 같은 경우엔 3개(6번, 3번, 2번)의 막대기가 보인다. N개의 막대기에 대한 높이 정보가 주어질 때, 오른쪽에서 보아서 몇 개가 보이는지를 알아내는 프로그램을 작성하려고 한다. 입력 첫 번째 줄에는 막대기의 개수를 나타내는 정수 N (2 ≤ N ≤ 100,000)이 주어지고 이어지는 N줄 각각에는 .. 2021. 6. 25.
[백준] 자바 2161 카드1 문제 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 한 장 남을 때까지 반복하게 된다. 우선, 제일 위에 있는 카드를 바닥에 버린다. 그다음, 제일 위에 있는 카드를 제일 아래에 있는 카드 밑으로 옮긴다. 예를 들어 N=4인 경우를 생각해 보자. 카드는 제일 위에서부터 1234 의 순서로 놓여있다. 1을 버리면 234가 남는다. 여기서 2를 제일 아래로 옮기면 342가 된다. 3을 버리면 42가 되고, 4를 밑으로 옮기면 24가 된다. 마지막으로 2를 버리고 나면, 버린 카드들은 순서대로 1 3 2가 되고, 남는 카드는 4가 된다. N이 주어졌을 때, 버.. 2021. 6. 24.
[알고리즘] 큐 queue 큐란? 큐는 자료구조 중 하나로, 알고리즘에 종종 사용됩니다. 주로 BFS에 사용되었습니다. 큐는 스택과는 다르게 스택모형에서 구멍이 뚫려있다고 생각하면 편합니다. 들어간 데이터는 그대로 제일 먼저 나옵니다. 실생활에서는 가게에서 계산대가 되겠습니다. 먼저 온 손님이 먼저 계산하듯이... 이를 FIFO(FIRST IN FIRST OUT)이라 합니다. 저는 자바로 큐를 구현해보았습니다. 큐 선언 Queue queue = new LinkedList(); Queue queue = new LinkedList(); Queue queue = new LinkedList(); 큐 값 추가 queue.add(1); queue.add(3); 큐 값 제거 queue.remove(); 큐 값 초기화 queue.clear();.. 2021. 3. 14.
[알고리즘] 스택 stack 스택이란? 자료구조 중 하나로, 알고리즘 문제에서 종종 쓸 일이 있었습니다. 어떤 보관 상자가 있는데, 이 상자에 차곡차곡 데이터를 저장할 수 있습니다. 데이터는 보관하는 순으로 저장되며, 그림에서 보다시피 가장 나중에 넣은 데이터가 가장 윗부분에 위치하게 됩니다. 따라서 데이터를 꺼낼때도 가장 윗부분부터 꺼내야 합니다. 이런 구조를 LIFO(LAST IN FIRST OUT)이라 합니다. 저는 자바로 스택을 구현해보았습니다. STACK 선언 Stack stack = new Stack(); Stack stack = new Stack(); Stack stack = new Stack(); 스택 보관함에 자료 추가하는 법 stack.push(3); //3을추가함 스택에서 값 삭제 stack.pop(); //st.. 2021. 3. 13.
반응형