Algorithm

Algorithm

[PCCP] 시뮬레이션 (Simulation) [1]

▼ Why ? 이전 문제 [웅덩이]와 같은 구현(Implementation) - 시뮬레이션(Simulation) 문제이지만, 이전 문제보다는 생각해야 할 부분이 좀 더 추가된 것 같아서 풀어보았다. ▼ 안전지대 문제 정보 다음 그림과 같이 지뢰가 있는 지역과 지뢰에 인접한 위, 아래, 좌, 우 대각선 칸을 모두 위험지역으로 분류합니다. 지뢰는 2차원 배열 board에 1로 표시되어 있고 board에는 지뢰가 매설 된 지역 1과, 지뢰가 없는 지역 0만 존재합니다. 지뢰가 매설된 지역의 지도 board가 매개변수로 주어질 때, 안전한 지역의 칸 수를 return하도록 solution 함수를 완성해주세요. 코딩테스트 연습 - 안전지대 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드..

Algorithm

[PCCP] 시뮬레이션 (Simulation) [0]

▼ Why ? 알고리즘은 문제가 제시한 상황에 맞게 나의 생각을 소스코드로 구현(Implementation)하는 능력을 먼저 키워야 한다고 한다. 구현해내는 문제의 대표적인 유형들 중 하나가 시뮬레이션(Simulation) 문제이다. 그렇기에 시뮬레이션 관련 문제들을 먼저 차례차례 풀어나가보려고 한다. 시뮬레이션은 문제가 제시한 규칙에 따라 개체를 이동시키는 알고리즘이라고 할 수 있기 때문에, 방향배열(dx, dy)을 만들어 네 방향을 탐색하는 방법을 기억해두자 ! char[] dir = {'N', 'E', 'S', 'W'}; int[] dx = {-1, 0, 1, -1}; int[] dy = {0, 1, 0, -1}; ➜ 수학에서의 좌표평면과 다르게 dx는 행을, dy는 열을 의미한다 ! ➜ 주변을 체..

Algorithm

[PCCP] 시간 복잡도 ( Time Complexity )

▼ Why ? 이번에 프로그래머스에서 진행했던 코딩역량전문인증(PCCP) 대비 특강에서 배운 내용들을 복습하고자 매일 차례차례 정리하고자 한다. 일단 2학년 1학기에도 자료구조 수업에서 배웠던 시간 복잡도에 대해 다시 한 번 알아보는 시간을 가졌다. ▼ 시간 복잡도 (Time Complexity) 시간 복잡도 ? 프로그램의 연산횟수와 연산량, 즉, 입력값 변화에 따라 연산을 실행할 때, 연산횟수에 비해 시간이 얼마나 걸리는지를 함수 관계로 나타낸 것 ! 효율적인 알고리즘을 구현했다 ! ➜ 입력값이 커짐에 따라 증가하는 시간의 비율을 최소화한 알고리즘을 구성했다 시간복잡도를 표현하는 방법 Big - O ➜ 최악의 상황 (Worst case) Big - Ω ➜ 최선의 상황 (Best case) Big - Θ..