본문 바로가기

알고리즘 문제풀이 입문: 코딩테스트 대비/섹션 5. Stack, Queue(자료구조)8

괄호 문자 제거 . 설명 입력된 문자열에서 소괄호 ( ) 사이에 존재하는 모든 문자를 제거하고 남은 문자만 출력하는 프로그램을 작성하세요. 입력 첫 줄에 문자열이 주어진다. 문자열의 길이는 100을 넘지 않는다. 출력 남은 문자만 출력한다 예시 입력 1 (A(BC)D)EF(G(H)(IJ)K)LM(N) 예시 출력 1 EFLM 문제 해결 ( 를 만나면 스택에 push, ) 를 만났는데 스택이 비어있지 않으면 ( 를 pop 하는 방식으로 접근했다. 만약 스택이 비어있다면 괄호 밖에 있음을 의미하므로 출력해주면 된다. 입력 받은 문자열을 char형으로 변환해 한 글자 한 글자를 추출해준다. for (char ch : str.toCharArray()) { ch가 '('인 경우, 스택에 push ch가 ')'인 경우, 스택이 비어.. 2024. 4. 12.
올바른 괄호 설명 괄호가 입력되면 올바른 괄호이면 “YES", 올바르지 않으면 ”NO"를 출력합니다. (())() 이것은 괄호의 쌍이 올바르게 위치하는 거지만, (()()))은 올바른 괄호가 아니다. 입력 첫 번째 줄에 괄호 문자열이 입력됩니다. 문자열의 최대 길이는 30이다. 출력 첫 번째 줄에 YES, NO를 출력한다. 예시 입력 1 (()(()))(() 예시 출력 1 NO 문제 해결 스택을 만들어 입력 괄호들을 입력받아 넣은 후 '(' 를 만나면 push를 하고, ')' 를 만나면 pop을 해서 만약 스택에 남아있는 게 없다면 짝이 맞는 거, 남는 게 있다면 짝이 맞지 않는 거로 생각하고 문제 풀이에 접근했다. 예시 입력에서 '( ( ) ( ( ) ) ) ( ( )' 가 들어있고, 위에 말한 것 처럼 push,.. 2024. 4. 12.
반응형