반응형

SW역량테스트 3

[SWEA] 2105. [모의 SW 역량테스트] 디저트 카페 JAVA 문제풀이

풀이 쉽게 생각했지만 생각보다 시간을 많이 들인 문제입니다. 저는 이 문제를 풀이할 때 DFS를 이용하여 풀이하였습니다. 6개의 매개변수 (i, j(현재위치), si와 sj(시작점), 0(방향 0), 1(길이 1))를 이용하였습니다. 항상 직사각형 모양으로 디저트 카페 투어가 이루어지므로 저는 가장 위쪽 모서리를 중심으로 잡고 오른쪽 아래↘ (dir==0), 왼쪽 아래↙ (dir==1), 왼쪽 위↖(dir==2), 오른쪽 위↗(dir==3) 이렇게 기준점에서 시작하여 ↘ ↙ ↖ ↗순서대로 순회한다면 원위치로 돌아올 수 있기 때문입니다. 이를 이용하여 DFS를 순회하게 되는데, 해당 위치의 디저트 번호를 방문했는지 확인하는 disert()배열과 함께 이동하였습니다. 먼저 방향이 0일때, 오른쪽 아래(↘)로..

알고리즘 연습 2020.02.06

[ 삼성 SW 역량 테스트 A형 기출문제 ] 3190. 뱀 _ JAVA 문제풀이

문제 풀이 #1. 먼저 입력받는 Input( ) 부분입니다. 1. 출발한 지 X초가 지나 방향이 전환됩니다. 그 시간초와 방향 L 또는 D를 기록해둘 큐 pq를 만들었습니다. ( 시간초 , 방향 ) 을 Curve 객체로 묶어 pq에 저장해두었습니다. 2. 2차원 배열 map에 뱀의 몸체가 있는 부분을 map[i][j]에 1로, 사과가 있는 위치는 4로, 아무것도 없거나 사과를 먹고 지나간 자리, 또는 뱀이 지나간 자리는 0으로 기록해둘 수 있도록 map 배열을 사용했습니다. Input( ) 에서는 사과의 위치를 입력받아 4 로 저장해주었습니다. 3. 기본 길이 ( length ) 는 1로 , 진행 시간초 ( = Point ) 는 0으로 초기화 해주었습니다. 처음 시작하는 ( 0, 0 ) 위치에는 뱀이 위..

알고리즘 연습 2019.10.19

[백준_BOJ] 14502. 연구소 문제풀이 JAVA

문제 풀이 정말 오랫동안 헤맸던 문제입니다. ㅠㅠ 여러번 시도 끝에 풀이하여 기쁜 마음으로 포스팅합니다! 1. 먼저 Input() -- > 문제에서 주어지는 입력을 받는 부분입니다. 맵의 사이즈, list( 벽을 만들기 위해 사용 ). vlist ( 바이러스 위치 저장을 위해 사용 ), bfs를 위한 큐 생성 등.. 입력을 받을 때 0 ( 벽을 세울 수 있는 위치 )은 list에 넣어주었고 2 ( 바이러스가 있는 위치 )는 vlist에 추가해주었습니다. 2. 다음으로 buildWall 함수입니다. ( cnt == 3 ) 을 종료 조건으로 하며 벽 3개를 세워주는 함수입니다. 가장 최적의 장소일 때를 찾기 위해 모든 지점에 벽을 한 번씩 세워보면서 check( ) 함수를 통해 최적의 장소에서 정답을 기록합..

알고리즘 연습 2019.10.07
반응형