티스토리 뷰
💻JAVA 코드 바로보기
□문제 설명
괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어
- "()()" 또는 "(())()" 는 올바른 괄호입니다.
- ")()(" 또는 "(()(" 는 올바르지 않은 괄호입니다.
'(' 또는 ')' 로만 이루어진 문자열 s가 주어졌을 때, 문자열 s가 올바른 괄호이면 true를 return 하고, 올바르지 않은 괄호이면 false를 return 하는 solution 함수를 완성해 주세요.
□제한사항
- 문자열 s의 길이 : 100,000 이하의 자연수
- 문자열 s는 '(' 또는 ')' 로만 이루어져 있습니다.
□입출력 예
s | answer |
"()()" | true |
"(())()" | true |
")()(" | false |
"(()(" | false |
🌼 JAVA 알고리즘
□초기화면
□풀이과정
시작위치의 괄호가 닫는 괄호이거나, 끝위치의 괄호가 여는 괄호일 경우 바로 false를 return하고, 여는괄호(open)와 닫는괄호(close)의 개수를 비교하여 같으면 true, 다르면 false를 return했다. |
class Solution { boolean solution(String s) { boolean answer = false; int open = 0, close = 0; //시작과 끝의 괄호 체크 if(s.charAt(0)==')'||s.charAt(s.length()-1)=='(') return false; for(int i=0;i<s.length();i++){ if(s.charAt(i)=='(') open++; else close++; } if(open==close) answer= true; else answer= false; return answer; } }
테스트 5번과 11번이 실패하여 다른 경우를 생각해보니, 지금 코드와 같이 여는 괄호와 닫는 괄호의 개수만을 비교하는것을 정확하지 않다는 것을 알았다. 예를 들어, ((( )((( )))))) |
□완성코드
class Solution {
boolean solution(String s) {
boolean answer = false;
int open = 0, close = 0; //시작과 끝의 괄호 체크
if(s.charAt(0)==')'||s.charAt(s.length()-1)=='(')
return false;
for(int i=0;i<s.length();i++){
if(s.charAt(i)=='(') open++;
else close++;
if(open-close==-1) return false;
}
if(open==close) answer= true;
else answer= false;
return answer;
}
}
□링크
About Me
💻GitHub/KimSky904 KimSky904 - Overview Department of New Media Software. KimSky904 has 8 repositories available. Follow their code on GitHub. github.com
code-review.tistory.com
코딩테스트 연습 - 올바른 괄호
괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 "()()" 또는 "(())()" 는 올바른 괄호입니다. ")()(" 또는 "(()(" 는 올바르지 않은
programmers.co.kr
'[코테] > [Programmers Lv2]' 카테고리의 다른 글
[Programmers] Lv2_스킬트리 (JAVA) (0) | 2021.12.30 |
---|---|
[Programmers] Lv2_이진 변환 반복하기 (JAVA) (0) | 2021.12.29 |
[Programmers] Lv2_다음 큰 숫자 (JAVA) (0) | 2021.12.27 |
[Programmers] Lv2_숫자의 표현 (JAVA) (0) | 2021.12.26 |
[Programmers] Lv2_최댓값과 최솟값 (JAVA) (0) | 2021.12.25 |
댓글
공지사항
최근에 올라온 글
TAG
- 코스프로
- c언어
- 1급
- cospro기출
- C++
- 기출문제
- programmers
- 연습문제
- 알고리즘
- 코딩테스트
- C
- 배열활용문제
- lv1
- 프로그래머스
- YBM
- groomedu
- 구름에듀
- Java
- 구름 기출문제
- cospro기출문제
- 자바
- YBM기출
- Cos Pro
- c언어 기출문제
- CosPro
- groom
- 구름에듀 기출문제
- COSPRO 2급
- lv2
- 배열
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함