본문 바로가기
코딩 테스트로 차근차근 공부하기

[프로그래머스] 2025.05.10 Lv 2. 올바른 괄호, 숫자의 표현

by 콩콩23 2025. 5. 10.

1. 올바른 괄호

https://school.programmers.co.kr/learn/courses/30/lessons/12909

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

문제 살펴보기

 

괄호를 올바르게 이용하여 결과로 닫힌 괄호를 만들어주게 하는 것

")()(" 는 틀린 괄호, "(())()" 는 올바른 괄호이다

 

<풀이 코드>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import java.util.*;
 
class Solution {
    boolean solution(String s) {
        Stack<Character> stack = new Stack<>();
        
        for (int i = 0; i < s.length(); i++) {
            char c = s.charAt(i);
            if (c == '(') {
                stack.push(c);
            } else {
                if (stack.isEmpty()) {
                    return false;
                }
                stack.pop();
            }
        }
        
        return stack.isEmpty();
    }
}
cs

 

이전 프로그래머스 스터디 중 스터디원들과 함께 해결해보았던 문제

문제 자체가 스택/큐 차트로 분류되어 있어 스택으로 접근해보았다

문자열 s를 한글자씩 순회하면서 문자가 ( 라면 스택에 넣어주고 아니라면(' ) '라면) 스택이 비어있으면 바로 false를 return 해주고

비어있지 않다면 pop을 이용하여 해당 요소의 전 요소를 제거해준다(' ( ')

그렇게 해서 마지막까지 순회해준 후 스택에 요소가 남아있지 않다면 올바른 괄호라고 판단하여 true를 return 해준다


2. 숫자의 표현

https://school.programmers.co.kr/learn/courses/30/lessons/12924

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

문제 살펴보기

 

특정 자연수 n을 연속된 자연수들의 합으로 표현할 수 있는 경우의 수를 구하는 문제

예를 들어 15는 1 + 2 + 3 + 4 + 5, 4 + 5 + 6, 7 + 8, 15 총 4가지 경우의 수를 구할 수 있다

 

<풀이 코드>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class Solution {
    public int solution(int n) {
        int answer = 0;
        
        for (int i = 1; i <= n; i++) {
            int sum = 0;
            int j = i;
            
            while (sum < n) {
                sum += j;
                j++;
            }
            
            if (sum == n) answer++;
        }
        
        return answer;
    }
}
cs

 

for 문으로 첫 시작의 i를 기준잡아주고, while문을 이용해서 sum이 n보다 작을 동안에만 sum에 i를 더해준다

대신, 현재 시작의 i와 늘어나야하는 i는 달라야 하므로 j에 i를 넣어주고 그 j를 증가시켜준다

그렇게 해서 돌리는 중에 sum이 n과 같아진다면 answer를 증감시켜준다


112일차도 완료!

목 금에 뭐가 그렇게 바빴던건지.... 출석을 안했었다

오늘은 두 문제로 분량 채우기 완료!

113일차도 화이팅!