본문 바로가기

반응형

백준

(20)
[삼성 기출 문제] 백준 13460 구슬 탈출 2 문제 링크 클릭시 문제로 이동합니다. 어떻게 풀까? 우선, 맵의 크기를 확인해 봅시다! 10 * 10의 맵의 크기를 가집니다. 그리고, 빨간 공과 파란공 2 가지 경우가 있죠. 그 말인 즉슨! 4 차원 배열을 통해서 [빨간공의 행][빨간공의 열][파란공의 행][파란공의 열] 형태로 visit 처리를 만들 수 있고,이를 통해 bfs를 이용하면 구슬을 빼낼 수 있는 최단 시간을 출력할 수 있습니다! 큐 에는 빨간공의 위치와 파란공의 위치를 넣으면 되겠죠! 10번이 넘어가면 -1을 return 하면 되겠군요! 그럼, 판을 상, 하, 좌, 우로 움직일 땐 어떻게 하면 될까요?그저 공의 위치를 저장해 놓고, 오른쪽으로 이동하면서 벽이 만나는 경우 그 전의 위치에다가 공을 위치시키기만 하면 됩니다!아래의 경우를 보..
[BOJ] 5622. 다이얼 문제 링크 어떻게 풀까? 단순한 구현문제입니다! 알파벳이 입력되었을때, 해당 알파벳에 해당하는 시간으로 변환해주는 배열을 만들면 쉽게 해결할 수 있습니다! 예를 들면, t['A'] = 3, t['B'] = 3, ... 이렇게 저장해놓으면, UNUCIC 가 들어왔을 때 쉽게 이 문자열을 숫자로 변환해서 더해줄 수 있습니다! 코드 12345678910111213141516171819202122232425262728293031323334#include#include using namespace std; int conv[256];char nums[16]; int main() { for (int i = 0; i > nums; int len = strlen(nums); int t = 0; for (int i = 0..
[BOJ] 1158번 조세퍼스 문제 조세퍼스 문제 링크 어떻게 풀까? 해당 문제는 환형 링크드 리스트를 이용했습니다. 환형 링크드 리스트란?!처음과 끝이 연결되어있는 링크드 리스트입니다! 환형 링크드 리스트는 보통 링크드 리스트와는 조금 다르게 head가 없습니다!왜냐하면, 어짜피 끝과 처음이 연결되어 있기 때문입니다! tail의 바로 다음이 head가 되겠죠! 해당 문제는 환형큐를 만들기만 하면 아주 쉽게 해결됩니다. m칸 옮긴 다음에 해당 칸을 삭제후 출력하는 것을 n번 반복하면 되기 때문이죠! 예제를 풀어보면, 처음에 리스트에는 1,2,3,4,5,6,7 이 들어있습니다!그리고 커서를 3번 옮겨줍니다.그러면 3에서 커서가 멈추게 됩니다!3을 출력후 삭제합니다! 출력 : 3환형 리스트 : 1,2,4,5,6,7커서 : 2 또다시 커서를 3..
[BOJ] 2161번 문제 카드1, 2164번 문제 카드2 카드1 문제 링크카드2 문제 링크어떻게 풀까? 두 문제는 N만 다르지 거의 같은 문제입니다! 두 문제를 풀기 위해 리스트를 사용했습니다. 카드 1의 경우에는 리스트에서 맨 앞에 하나는 출력하고 리스트에서 삭제합니다.그리고 또다시 맨 앞의 수를 삭제하고 맨 뒤에 넣습니다.이 행동을 n-1번 반복하면 마지막 카드가 남고, 이 카드를 출력해주면 됩니다! 예제를 한번 풀어보겠습니다! 처음에 리스트에는 1,2,3,4,5,6,7이 들어있습니다. 맨 앞에있는 수는 출력하고, 2는 삭제한 뒤에 맨 뒤에 다시 넣어줍니다. 이제 맨 앞의 수가 3이 되고, 해당 수를 출력하고 삭제합니다.4는 삭제하고 맨 뒤로 보냅니다. 이제 맨 앞의 수는 7이 됩니다. 7을 출력하고 리스트에서 삭제합니다.2도 리스트에서 삭제 후에 맨 뒤에..

반응형