2021 하반기 진짜마지막 데브매칭 코딩 테스트 1번
7357 단어 Problem SolvingProblem Solving
설명
[문제 비공개]
풀이
class Solution {
public int solution(String[] drum) {
int size = drum.length;
char[][] board = new char[size][size];
for(int i=0;i<drum.length;i++) {
board[i] = drum[i].toCharArray();
}
int arrived = 0;
for(int position = 0 ; position < size; position++) {
boolean stuckedOnce = false;
int width = position;
int height = 0;
while(height < size) {
if('#' == board[height][width]) {
height++;
}
else if('>' == board[height][width]) {
width++;
}
else if('<' == board[height][width]) {
width--;
}
else if('*' == board[height][width]) {
if(stuckedOnce) break;
stuckedOnce = true;
height++;
}
}
if(height >= size) {
arrived++;
}
}
return arrived;
}
}
class Solution {
public int solution(String[] drum) {
int size = drum.length;
char[][] board = new char[size][size];
for(int i=0;i<drum.length;i++) {
board[i] = drum[i].toCharArray();
}
int arrived = 0;
for(int position = 0 ; position < size; position++) {
boolean stuckedOnce = false;
int width = position;
int height = 0;
while(height < size) {
if('#' == board[height][width]) {
height++;
}
else if('>' == board[height][width]) {
width++;
}
else if('<' == board[height][width]) {
width--;
}
else if('*' == board[height][width]) {
if(stuckedOnce) break;
stuckedOnce = true;
height++;
}
}
if(height >= size) {
arrived++;
}
}
return arrived;
}
}
보드의 크기도 작고 요구사항도 어렵지 않아서 금방 풀 수 있는 문제였다. 중간에 계속 무한 루프가 나와서 왜 그런가 했는데 "*"을 만났을 때 처리해야 하는 로직에서 놓친 부분(height++
)이 있었기 때문이었다. 이것 때문에 시간을 좀 잡아먹어서 아쉬운 기억이 있다.
Author And Source
이 문제에 관하여(2021 하반기 진짜마지막 데브매칭 코딩 테스트 1번), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@park2348190/2021-하반기-진짜마지막-데브매칭-1번저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)