728x90 반응형 BASE/Coding Test2 [Code Tree] 시뮬레이션 - 격자 안에서 밀고 당기기 시뮬레이션 - 격자 안에서 밀고 당기기 밀고 당기는 작업이란, 주어진 숫자들을 특정 방향으로 1칸씩 미는 작업을 말한다. 2차원 격자에서는 선택된 행에 대해, 적혀있는 숫자들을 왼쪽 혹은 오른쪽으로 한 칸씩 밀어주는 작업이 될 수 있고, 혹은 선택된 열에 대해 적혀있는 숫자들을 위 혹은 아래 방향으로 한 칸씩 밀어주는 작업이 될 수도 있다. 예를 들어, 오른쪽으로 한 칸씩 숫자들을 밀어준다고 해보자. # 1. n번째 원소를 temp에 저장 temp = a[n - 1] # 2. 나머지 원소를 오른쪽으로 shift for i in range(n - 1, 0, -1): a[i] = a[i - 1] # 3. temp를 첫 번째 원소에 기록 a[0] = temp 2차원 격자가 주어졌을 때 위쪽으로 숫자들을 한 칸.. 2023. 5. 22. [Code Tree] 시뮬레이션 - 격자 안에서 완전탐색 시뮬레이션 - 격자 안에서 완전탐색 완전탐색이란, 모든 가능한 경우를 다 따져보는 방법이다. 장점 : 코드 짜기가 쉽다. 단점 : 수행시간이 비교적 오래 걸린다. => 시간복잡도를 계산해보고 시간초과가 나지 않는다면 무조건 쓰는 것이 좋다. 완전탐색을 구현할 수 있는 방법은 For문 기반으로 구현하는 것과, 재귀함수 기반의 Backtracking(Brute Force) 기법을 이용하는 방법이 있다. 격자 안에서 탐색을 하는 경우는 For문을 기반으로 구현하면 된다. 예시 문제 - 행복한 수열의 개수 1이상 100이하의 숫자로만 이루어져 있는 n * n 크기의 격자 정보가 주어집니다. 이때 행복한 수열이라는 것은 다음과 같이 정의됩니다. 행복한 수열 = 연속하여 m개 이상의 동일한 원소가 나오는 순간이 존.. 2023. 5. 22. 이전 1 다음 728x90 반응형