💡 오늘의 학습 키워드
- 스택/큐
✅ 오늘 공부한 내용
- 오늘의 프로그래머스 문제! 괄호 회전하기
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
import java.util.*;
class Solution {
public int solution(String s) {
int n = s.length();
int count = 0;
// 주어진 문자열을 왼쪽으로 x칸 만큼 회전
for (int i = 0; i < n; i++) {
String rotated = rotateString(s, i);
if (isValid(rotated)) {
count++;
}
}
return count;
}
// 문자열을 왼쪽으로 x만큼 회전하는 함수
private String rotateString(String s, int x) {
return s.substring(x) + s.substring(0, x);
}
// 괄호 문자열이 올바른지 체크하는 함수
private boolean isValid(String s) {
Stack<Character> stack = new Stack<>();
for (char c : s.toCharArray()) {
// 여는 괄호를 스택에 삽입
if (c == '(' || c == '{' || c == '[') {
stack.push(c);
} else {
// 닫는 괄호가 나왔을 때, 스택이 비어있거나 짝이 맞지 않으면 false
if (stack.isEmpty()) return false;
char top = stack.pop();
if ((c == ')' && top != '(') ||
(c == '}' && top != '{') ||
(c == ']' && top != '[')) {
return false;
}
}
}
// 모든 과정을 거쳤을 때 스택이 비어있어야 올바른 괄호 문자열
return stack.isEmpty();
}
}
👩💻 내일은 무엇을 학습할 것인가?
- 항해99 문제 풀기
'개인 공부 > TIL' 카테고리의 다른 글
[ TIL - PGS ] 99클럽 코테 스터디 30일차 TIL + 오늘의 학습 가이드 (0) | 2024.08.21 |
---|---|
[ TIL - PGS ] 99클럽 코테 스터디 29일차 TIL + 오늘의 학습 가이드 (0) | 2024.08.19 |
[ TIL - PGS ] 99클럽 코테 스터디 27일차 TIL + 오늘의 학습 가이드 (0) | 2024.08.17 |
[ TIL - PGS ] 99클럽 코테 스터디 26일차 TIL + 오늘의 학습 가이드 (0) | 2024.08.16 |
[ TIL - PGS ] 99클럽 코테 스터디 25일차 TIL + 오늘의 학습 가이드 (0) | 2024.08.15 |