https://school.programmers.co.kr/learn/courses/30/lessons/60058
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
올바르지 않은 괄호를 올바르게 만드는 문제
for (int i = 0; i < p.length(); i++) { u.append(p.charAt(i)); int a = 0; int b = 0; for (int j = 0; j < u.length(); j++) { if (u.charAt(j) == '(') { a++; } else { b++; } } if (a == b) { break; } }
일단 괄호의 개수가 알맞는지를 확인
public boolean check(String p) { int number = 0; for (int i = 0; i < p.length(); i++) { if (p.charAt(i) == '(') number++; else number--; if (number < 0) { return false; } } return true; }
괄호가 올바르게 있는지를 체크
if (check(u.toString())) { u.append(solution(v.toString())); return u.toString(); } else { sb.append("("); sb.append(solution(v.toString())); sb.append(")"); for (int i = 1; i < u.length() - 1; i++) { if (u.charAt(i) == '(') { sb.append(")"); } else { sb.append("("); } } } return sb.toString();
false라면 괄호를 올바르게 바꾸어주기
class Solution { public String solution(String p) { StringBuilder sb = new StringBuilder(); StringBuilder u = new StringBuilder(); if (p.length() == 0) { return p; } for (int i = 0; i < p.length(); i++) { u.append(p.charAt(i)); int a = 0; int b = 0; for (int j = 0; j < u.length(); j++) { if (u.charAt(j) == '(') { a++; } else { b++; } } if (a == b) { break; } } StringBuilder v = new StringBuilder(p.substring(u.length())); if (check(u.toString())) { u.append(solution(v.toString())); return u.toString(); } else { sb.append("("); sb.append(solution(v.toString())); sb.append(")"); for (int i = 1; i < u.length() - 1; i++) { if (u.charAt(i) == '(') { sb.append(")"); } else { sb.append("("); } } } return sb.toString(); } public boolean check(String p) { int number = 0; for (int i = 0; i < p.length(); i++) { if (p.charAt(i) == '(') number++; else number--; if (number < 0) { return false; } } return true; } }
'Programmers' 카테고리의 다른 글
[프로그래머스][JAVA]Lv. 2 - 튜플 (0) | 2023.09.25 |
---|---|
[프로그래머스][JAVA]Lv. 2 - 멀쩡한 사각형 (0) | 2023.09.25 |
[프로그래머스][JAVA]Lv. 3 - 정수 삼각형 (0) | 2023.07.31 |
[프로그래머스][JAVA]Lv. 2 - 문자열 압축 (0) | 2023.07.30 |
[프로그래머스][JAVA]Lv. 2 - 방문 길이 (0) | 2023.07.17 |