[ 백준 13460 : 구슬 탈출 2 ]
조건이 까다롭긴 하지만 읽어보면서 차례대로 구현 시켜주면된다.
일단 조건들을 살펴보자.
1. 빨간 구슬을 구멍으로 , 파란 구슬은 들어가면안됨.
2. 위,아래,오른쪽,왼쪽으로 무조건 끝까지 이동.
3. 동시에 같은 칸에 구슬이 있을 수는 없음.
한 번 움직일때 4가지 방향으로 움직일 수 있고 10번이하로 움직여야하므로 최악에 4*10번 함수를 돌고 충분히 시간안에 가능하다.
이제 구현을 시켜준다.
나는 빨간공을 기준으로 생각했는데 먼저 빨간공을 네가지 방향중 한 방향으로 움직인다.
계속 움직이다가 만약 빨간공이 '#':벽에 닿았을때, 'O' : 구멍에 들어갈때, 'B' : 파란구슬에 닿을때
이렇게 생각했고
만약 # 또는 B에 닿는다면 한칸 반대편으로 물러준다. 그리고 나서 파란공을 움직이는데 이때 파란공도 똑같이
#, O, R의 조건에 따라 계속해서 움직인다. 하지만 O(구멍)에 파란공이 들어간다면 다음 재귀문장까지 들어가지않는다.
여기서 굳이 주의 할 점을 뽑아보자면 음... 빨간공이 파란공에 닿았을때 파란공이 이제 끝까지 움직일 것이다. 이때 파란공을 다 움직이고 난 후 빨간공의 위치를 파란공의 옆으로 옮겨줘야한다.
또, 빨간공이 O(구멍)에 들어갔을때 파란공을 움직여 파란공도 구멍에 들어가는지를 봐줘야한다. 만약 파란공이 들어가지 않는다면 답을 갱신해준다.
이렇게 재귀문장으로 계속해서 들어가고
만약 매개변수로 가지고 다니는 답이 현재의 답보다 크다면 바로바로 return 시켜주면서 조금이나마 더 빠르게 해준다.
이 문제는 단순 시뮬레이션 문제라서 조건만 잘 생각하면서 구현하면 쉽게 풀 수 있다.
이 블로그 검색
피드 구독하기:
댓글 (Atom)
-
[ 백준 1024 : 수열의 합 ] 간만에 푼 백준~ 쉬운 문제라고 생각하고 풀었는데 계속 틀려서 봤더니 예외 처리를 한 개 안해준것이 있었다. 만약 이 글을 보기전에 풀었을때 채점이 60%에서 자꾸 틀린다면 90%확률로 나와 같은 실수를 ...
-
[백준 1091 : 카드 섞기 ] 이 문제도 5달 전에 풀었다가 포기했었던 문제였나보다. 오늘 틀렸던 문제 다시풀기 중 풀게 되었다. 문제를 읽는데 헷갈려서 머리카락 한 10번은 쥐어짠듯. 아마 전에 풀었을때는 P배열이 각 카드가 최후에 ...
-
아마 나와 비슷한 나이대의 학생들은 대부분 대학에서 수업을 들으면서 꾸준하게 들었을 것 같다. 물론 내가 그래서 그렇다. 4차산업~ IT의 시대~ 빅데이터~ 데이터 마이닝~ 하지만 컴퓨터 관련 전공자가 아니고 더군다나 공학 계열 전공자가 아니라...
[백준 16236] 아기 상어
[ 백준 16236 : 아기 상어 ] 2018 삼성전자 sw직무 하반기 기출문제입니다. 역대 삼성전자 기출문제가 그렇듯 역시나 BFS,DFS,완탐,DP,단순구현 입니다. 저는 문제를 단순히 BFS로 풀어갔습니다. 조건만 잘 지킨다면 한번에 ...
댓글 없음:
댓글 쓰기