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일차도 화이팅!

'코딩 테스트로 차근차근 공부하기' 카테고리의 다른 글
| [프로그래머스] 2025.05.14 Lv 2. 카펫 (0) | 2025.05.14 |
|---|---|
| [프로그래머스] 2025.05.13 Lv 2. 이진 변환 반복하기 (0) | 2025.05.13 |
| [프로그래머스] 2025.05.07 Lv 2. JadenCase 문자열 만들기 (0) | 2025.05.07 |
| [프로그래머스] 2025.05.06 Lv 2. 최솟값 만들기 (0) | 2025.05.06 |
| [프로그래머스] 2025.05.05 Lv 2. 최댓값과 최솟값 (0) | 2025.05.05 |