시뮬레이션

📖 문제 2174번: 로봇 시뮬레이션 첫째 줄에 두 정수 A, B가 주어진다. 다음 줄에는 두 정수 N, M이 주어진다. 다음 N개의 줄에는 각 로봇의 초기 위치(x, y좌표 순) 및 방향이 주어진다. 다음 M개의 줄에는 각 명령이 명령을 내리는 순 www.acmicpc.net 💡 풀이 방식 • 시뮬레이션 1. x좌표, y좌표를 입력받아 2차원 배열에서는 거꾸로 [y좌표][x좌표] 위치에 로봇 위치를 기록하고, 각 로봇의 위치와 방향은 로봇 객체 배열에 저장한다. 2. (명령 내리는 로봇, 명령 종류, 명령 반복 횟수)를 입력받아 명령을 수행한다. - 명령 종류가 L이거나 R인 경우, 입력받은 명령 반복 횟수만큼 방향을 전환해준다. private static int getDir(int dir, char ..
📖 문제 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석 국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요. www.codetree.ai 💡 풀이 방식 • 시뮬레이션 완전탐색을 통해 모든 점에 대해 K를 변경하며 채굴할 수 있는 금의 갯수를 센다. 이 때, (금 1개 가격 * 채굴한 금 개수)이 채굴에 드는 비용보다 같거나 큰 경우에만 금의 갯수를 더 큰 값으로 비교해 갱신한다. 💥 유의사항 k의 범위! 격자 내 모든 격자를 덮기 위한 가능한 K의 최대범위 = 가장 거리가 먼 두 점 (좌측 상단-우측 하단) 거리 계산 : 2 * (N-1) + 대각선 길이는 가로나 세로 길이의 2배이므로 2*(N-1)이면 충분히 모든 칸 커버 가능..
📖 문제 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석 국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요. www.codetree.ai 💡 풀이 방식 • 시뮬레이션 - 2차원 격자 안에서의 폭발과 중력 적용하기 1) 범위 내의 폭탄을 터뜨린다. → 범위 확인 시, 맨해튼 거리 이용 2) 중력을 적용해 값이 0인 칸은 아래로 떨어트린다. → 새로운 2차원 배열을 생성해 각 열을 아래에서부터 위로 0이 아닌 값으로 채운다. 3) 완성된 임시배열의 결과를 원본배열에 적용한다. 💥 유의사항 맨해튼 거리 식 (|x1 - x2| + |y1 - y2|) 🔺 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18..
📖 문제 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석 국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요. www.codetree.ai 💡 풀이 방식 • 시뮬레이션 필요 변수 - 배열 정보 저장할 int형 배열 arr - 원본 배열의 마지막 인덱스를 나타내는 int형 변수 endOfArr - 삭제한 결과 저장할 int형 임시 배열 tmp (크기 : endOfArr) - 임시 배열의 마지막 인덱스를 나타내는 int형 변수 endOfTmpArr 1) tmp 배열에 (s, e) 범위의 숫자만 제외하고 저장한다. 2) tmp 배열을 arr 배열로 다시 옮긴다. (copy) 💥 유의사항 🔺 코드 1 2 3 4 5 6 7 8 9 10 11..
📖 문제 2636번: 치즈 아래 과 같이 정사각형 칸들로 이루어진 사각형 모양의 판이 있고, 그 위에 얇은 치즈(회색으로 표시된 부분)가 놓여 있다. 판의 가장자리(에서 네모 칸에 X친 부분)에는 치즈가 놓 www.acmicpc.net 💡 풀이 방식 • BFS + 시뮬레이션 필요 자료구조 - 판 정보 저장할 2차원 int형 배열 - 2차원 boolean형 방문 표시 배열 - 남아있는 치즈조각이 놓여 있는 칸의 개수 저장하는 리스트 판에 치즈조각이 존재하는 동안 아래 과정을 반복한다. ① 방문 표시 배열을 초기화한다. ② (0,0)에서부터 BFS를 수행하며 경계선에 있는 모서리 칸들 = 공기(0)인 칸을 모두 방문 표시하러 간다. ((0,0)이 확실하게 공기인 칸이니까) → 이동 가능 조건 : 방문한 적 ..
📖 문제 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석 국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요. www.codetree.ai 💡 풀이 방식 • 시뮬레이션 입력받은 시작점 (r,c)에서부터 우선순위가 상하좌우일 때 현재 칸보다 큰 값을 가진 칸으로 바로 이동할 수 있는지 확인한다. (boolean으로 확인) 그 칸에서 이동할 수 있다면, 해당 칸을 경로 리스트에 넣어 출력한다. 상하좌우로 이동할 수 없다면, 종료한다. 🔺 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 4..
📖 문제 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석 국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요. www.codetree.ai 💡 풀이 방식 • 시뮬레이션 + BFS 필요 자료구조 - dx/dy 배열 - N, Q, len (격자 크기 저장 변수) - 격자 값 저장하는 2차원 int형 배열 grid - 결과값 저장하는 임시 2차원 int형 배열 nextGrid - BFS할 때 방문 표시할 2차원 boolean형 배열 - N과 Q, 격자 배열의 값을 입력받는다. - Q번 동안 레벨을 입력받고, 레벨에 맞춰 회전시키고, 얼음을 녹인다. > 회전시키는 메소드 rotate 1. 회전 이후의 상태를 저장하는 배열을 0으로 초기화한..
📖 문제 코드트리 | 코딩테스트 준비를 위한 알고리즘 정석 국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요. www.codetree.ai 💡 풀이 방식 • 구현, 시뮬레이션 1. 먼지 비율을 배열로 미리 저장해두기 (추가될 먼지양 계산용) 2. 방향이 왼쪽/오른쪽으로 바꼈을 때, 동일한 방향에 대해 이동거리 +1 (단, 마지막 부분은 그렇지 않음) if(dir == 0 || dir == 2) { moveNum++; } 3. 이동하면서 먼지 비율 배열 값을 활용해 현재 위치의 먼지양에 각 비율을 곱함 (최종적으로 남은 먼지양을 따로 계산해 처리해야 함) 💥 유의사항 마지막 부분 별도 처리 ! 🔺 코드 1 2 3 4 5 6 7 8 9..
📖 문제  1244번: 스위치 켜고 끄기첫째 줄에는 스위치 개수가 주어진다. 스위치 개수는 100 이하인 양의 정수이다. 둘째 줄에는 각 스위치의 상태가 주어진다. 켜져 있으면 1, 꺼져있으면 0이라고 표시하고 사이에 빈칸이 하나씩www.acmicpc.net  💡  풀이 방식• 구현, 시뮬레이션👨 남자인 경우스위치 배열 switches 에서 인덱스가 입력받은 수의 배수인 칸의 상태를 변경한다. 👩 여자인 경우현재 칸은 무조건 상태를 변경한다.현재 칸의 왼쪽 위치 l과 현재 칸의 오른쪽 위치 r을 잡는다. (투 포인터)l과 r이 배열의 크기를 벗어나지 않는 동안 반복문을 수행한다. (while문 사용)만약 좌우 두 칸이 대칭인 경우 (swithces[l] == switches[r]), 좌우 두 칸을..
imname1am
'시뮬레이션' 태그의 글 목록 (4 Page)