8. 응급실
·
알고리즘/Stack, Queue(자료구조)
1. 문제 • 환자가 접수한 순서대로의 목록에서 제일 앞에 있는 환자목록을 꺼냅니다. • 나머지 대기 목록에서 꺼낸 환자 보다 위험도가 높은 환자가 존재하면 대기목록 제일 뒤로 다시 넣습니다. 그렇지 않으면 진료를 받습니다. 첫 줄에 자연수 N(5
7. 교육과정 설계
·
알고리즘/Stack, Queue(자료구조)
1. 문제 첫 줄에 한 줄에 필수과목의 순서가 주어집니다. 모든 과목은 영문 대문자입니다. 두 번 째 줄부터 현수가 짠 수업설계가 주어집니다.(수업설계의 길이는 30이하이다) 현수가 짠 수업설계가 잘됐으면 "YES" 아니면 "NO"를 출력하시오 2 - 1. 나의 풀이 나는 두 가지 방식으로 풀었다. HashMap 1.필수과목 순서(str1)를 HashMap에 저장한다. ex C - 1, B - 2, A - 3 2. 현수가 짠 설계(str2)를 순회하면서 HashMap.containkey로 필수과목 순서에 해당 과목이 있는지 확인한다. 3. count = 1 초기화. 여기서 count 는 현재 나와야할 필수과목 순서이다. 4. str2.charAt(i)가 HM에 있을 때 HM의 value와 count 가 ..
6. 공주 구하기
·
알고리즘/Stack, Queue(자료구조)
1. 문제 그리고 1번 왕자부터 N번 왕자까지 순서대로 시계 방향으로 돌아가며 동그랗게 앉게 한다. 2 - 1. 나의 풀이 1. Queue에 입력값 넣기 2. count == k 이면 해당 값 poll() or remove() 3. count != k 이면 q.add(q.poll()) 논외. int 배열 arr을 만든 다음 [i/arr.size()]를 사용해서 원형 큐 느낌으로 풀어도 될거같다. 배열 값이 0이면 pass, 0 이상이면 count 한다음 count == k 이면 해당값을 0으로 수정 2 - 2. 나의 코드 package Stack_Queue; import java.util.*; public class Queue_01 { public static int solution(int n, int ..
5. 쇠막대기
·
알고리즘/Stack, Queue(자료구조)
1. 문제 1. 레이저는 여는 괄호와 닫는 괄호의 인접한 쌍 ‘( ) ’ 으로 표현된다. 또한, 모든 ‘( ) ’는 반 드시 레이저를 표현한다. 2. 쇠막대기의 왼쪽 끝은 여는 괄호 ‘ ( ’ 로, 오른쪽 끝은 닫힌 괄호 ‘) ’ 로 표현된다. 2 - 1. 나의 풀이 풀지 못함. 닫는 괄호 ' ) ' 가 나왔을 때, 이를 레이저인지 쇠막대기의 끝인지 stack 으로만 판단하려고 해서 풀지 못했다. 3 - 1. 강의 풀이 stack 만 아니라 쇠막대기를 받은 String.charAt(i - 1)을 사용해서 닫는 괄호 ' ) ' 가 나왔을 때, 이를 레이저인지 쇠막대기의 끝인지 판단할 수 있었다. 3 - 2. 강의 코드 package Stack_Queue; import java.util.*; public c..
4. 후위식 연산
·
알고리즘/Stack, Queue(자료구조)
1. 문제 후위연산식이 주어지면 연산한 결과를 출력하는 프로그램을 작성하세요. 만약 3*(5+2)-9 을 후위연산식으로 표현하면 352+*9- 로 표현되며 그 결과는 12입니다. 2 - 1. 나의 풀이 1. 숫자는 그대로 push 한다. 2. 만약 사칙연산을 만나면 pop()을 두번 해서 사칙연산을 해준뒤 해당 수를 다시 스택에 넣어준다. 중요. 두번째로 pop한 수가 연산의 앞에 와야한다. if문이 많이 사용될거같아서 switch를 사용했는데 그냥 if문 네번 쓰는게 코드가 짧은거같다. 2 - 2. 나의 코드 초기 코드 package Stack_Queue; import java.util.*; public class stack_04 { public static int solution(String str)..
3. 크레인 인형뽑기
·
알고리즘/Stack, Queue(자료구조)
1. 문제 게임개발자인 죠르디는 크레인 인형뽑기 기계를 모바일 게임으로 만들려고 합니다. 죠르디는 게임의 재미를 높이기 위해 화면 구성과 규칙을 다음과 같이 게임 로직에 반영하려고 합니다. 게임 화면은 1 x 1 크기의 칸들로 이루어진 N x N 크기의 정사각 격자이며 위쪽에는 크레인이 있고 오른쪽에는 바구니가 있습니다. (위 그림은 5 x 5 크기의 예시입니다). 각 격자 칸에는 다양한 인형이 들어 있으며 인형이 없는 칸은 빈칸입니다. 모든 인형은 1 x 1 크기의 격자 한 칸을 차지하며 격자의 가장 아래 칸부터 차곡차곡 쌓여 있습니다. 게임 사용자는 크레인을 좌우로 움직여서 멈춘 위치에서 가장 위에 있는 인형을 집어 올릴 수 있습니다. 집어 올린 인형은 바구니에 쌓이게 되는 데, 이때 바구니의 가장 ..
2. 괄호문자제거
·
알고리즘/Stack, Queue(자료구조)
1. 문제 입력된 문자열에서 소괄호 ( ) 사이에 존재하는 모든 문자를 제거하고 남은 문자만 출력하는 프로그램을 작성하세요. 2 - 1. 나의 풀이 Stack 자료구조를 쓰지 않고 풀었다. (사용법을 잘 몰라서 ㅎ) 전 문제와 풀이가 비슷하다 1. ' ( ' 가 나오면 count++ 2. ' ) ' 가 나오면 count-- 3. count == 0 이면 해당 문자를 answer에 추가한다. 2 - 2. 나의 코드 package Stack_Queue; import java.util.*; public class Stack_02 { public static String solution(String str) { String answer = ""; int count = 0; for (int i = 0; i < s..
1. 올바른 괄호
·
알고리즘/Stack, Queue(자료구조)
1. 문제 괄호가 입력되면 올바른 괄호이면 “YES", 올바르지 않으면 ”NO"를 출력합니다. (())() 이것은 괄호의 쌍이 올바르게 위치하는 거지만, (()()))은 올바른 괄호가 아니다. 2 - 1. 나의 풀이 stack이라는 강의 제목 힌트를 보고 쉽게 풀었다. 1. 여는 괄호를 count 한다. 2. 닫는 괄호가 나왔을때 count--를 하는데 만약 count==0이면 return NO 3. 반복문이 끝났을 때 count가 0이면 YES 2 - 2. 나의 코드 package Stack_Queue; import java.util.Scanner; public class stack_01 { public static String solution(String str) { String answer = "N..