▸ 이웃한 칸
▸ 올바른 괄호
출처 : 코딩테스트 연습 > PCCE 기출문제 > [PCCE 기출문제] 9번 / 이웃한 칸
- 정수를 저장할 변수 n을 만들고 board의 길이를 저장합니다.
- 같은 색으로 색칠된 칸의 개수를 저장할 변수 count를 만들고 0을 저장합니다.
- h와 w의 변화량을 저장할 정수 리스트 dh, dw를 만들고 각각 [0, 1, -1, 0], [1, 0, 0, -1]을 저장합니다.
- 반복문을 이용해 i 값을 0부터 3까지 1 씩 증가시키며 아래 작업을 반복합니다.
4-1. 체크할 칸의 h, w 좌표를 나타내는 변수 h_check, w_check를 만들고 각각 h + dh[i], w + dw[i]를 저장합니다.
4-2. h_check가 0 이상 n 미만이고 w_check가 0 이상 n 미만이라면 다음을 수행합니다.
4-2-a. board[h][w]와 board[h_check][w_check]의 값이 동일하다면 count의 값을 1 증가시킵니다.- count의 값을 return합니다.
import java.util.*;
class Solution {
public int solution(String[][] board, int h, int w) {
int n = board.length;
int count = 0;
List<Integer> dh = new ArrayList<>();
List<Integer> dw = new ArrayList<>();
dh.add(0);
dh.add(1);
dh.add(-1);
dh.add(0);
dw.add(1);
dw.add(0);
dw.add(0);
dw.add(-1);
for(int i = 0; i <=3; i++) {
int h_check = h + dh.get(i);
int w_check = w + dw.get(i);
if(h_check>=0 && h_check<n && w_check>=0 && w_check<n){
if(board[h][w].equals(board[h_check][w_check])){
count++;
}
}
}
return count++;
}
}
출처 : 코딩테스트 연습 > 스택/큐 > 올바른 괄호
import java.util.*;
class Solution {
public boolean solution(String s) {
boolean answer = true;
Stack<Character> st = new Stack<>();
char[] c = s.toCharArray();
for(int i = 0; i < c.length; i++) {
if(c[i] == '('){
st.push(c[i]);
} else {
if(st.isEmpty()){
answer = false;
break;
}
st.pop();
}
}
if(!st.isEmpty()) {
answer = false;
}
return answer;
}
}