1. 올바른 괄호 // 올바른 괄호인지 확인하는 스택의 기본적인 문제
- (())()()( 이런식으로 단순히 '(' 와 ')' 로만 이루어 있다.
- 그래서 Stack으로도 풀어보고 count 변수 선언 하여 풀어보았다.
2. 괄호문자제거 // 스택은 배열
- pop()을 하지 않고 for문으로 순서대로 꺼낼시 LIFO 형식이 아닌 INDEX 순 ( 먼저들어간 순으로 나옴-stack.get(i) )
3. 크레인 인형뽑기(카카오)
- 1. 뽑길 원하는 숫자(라인)이 넘어오면 2차원 행열의 열 기준 for문을 돌려 0이 아닐때 까지 돈다.
- 2. 0이 아닌 숫자를 만나면 stack에 넣는 작업을 하는데
- 2.1) 스택이 비어있거나 스택의 위의 숫자와 넣는 숫자가 다르면 그냥 넣는다.
- 2.2) 스택이 비어있지 않고 스택의 위의 숫자가 넣으려는 숫자와 같다? 애니팡 처럼 두 숫자가 터진다.
- 3. 이 과정을 반복한다.
- 4. 터진 숫자의 개수를 체크한다.
4. 후위식 연산 // 스택
- for 문을 돌며 연산자가 아닌 숫자면 stack에 push
- 연산자를 만나면 스택에서 2개의 숫자를 빼 연산 결과를 다시 스택에 넣는다.
- char 형 문자가 숫자인지 문자인지 확인 = Character.isDigit(char)
- char 형 숫자를 int 형 숫자로 아스키코드로 접근 char-48 -> '7'-48 = 7
5. 쇠막대기 // 스택 - 쇠막대기가 동강난 개수
() <- 레이저인지 막대인지 체크
- 1. 레이저라면 문자열의 앞의 기호가 ' ( '
- 2. 막대라면 문자열의 앞의 기호가 ' ) '
- 3. 막대기 끝이라면 +1
6. 공주 구하기 // 큐
- 먼저 들어간 순서대로 제거가 되며, 계속 반복되는 고리형식임을 확인하여야 한다. -> queue 이용
7. 교육과정 설계 //큐
// 필수 과목이 A F C 라면 이 3과목은 무조건 들어야 하며 과목 진행은 무조건 A -> F -> C순으로 수강을 해야 된다. 중간에 어떤 과목을 들어도 상관없으며 순서만 맞으면 된다.// A C B F - NO// A X F Q A C - YES// 필수과목을 Queue로 설정 후 순서대로 접근하면서 수강신청 목록에 필수과목의 첫번째 값이 나오면 poll// 마지막까지 필수과목 Queue가 비어있지 않는다면 순서대로 하지 않았거나 필수과목을 다 듣지 않았다는 것
8. 응급실 // 큐
//큐의 값을 순서와 값을 가지는 키 값 형식으로 저장한다. - Person 클래스로 들어온 순위와 우선순위 변수를 만든다.
// 큐의 타입으로 Person 설정
//가장 높은 우선순위가 poll 될 때 그 키 값이 M번째 환자와 같은지만 체크
'코딩테스트 > 인프런' 카테고리의 다른 글
인프런 JAVA 알고리즘 정리(정렬 7번~10번) (0) | 2023.04.30 |
---|---|
인프런 JAVA 알고리즘 정리(정렬 1번~6번) (0) | 2023.04.14 |
인프런 JAVA 알고리즘 정리(Two pointers, Sliding window 1번~6번) (0) | 2023.04.05 |
인프런 JAVA 알고리즘 정리(배열 1번~12번) (0) | 2023.04.03 |
인프런 JAVA 알고리즘 정리(문자열 1번~12번) (0) | 2023.03.28 |
댓글