코딩테스트/알고리즘

2. 구현 유형(시뮬레이션)

초코chip 2024. 2. 13. 17:20

개념

  • 정의: 머리속에 있는 알고리즘을 소스코드로 바꾸는 과정
  • 어떤게 구현?: 풀이를 떠올리는 것은 쉽지만 소스코드로 옮기기 어려운 문제
  • 예시:
    • 알고리즘 간단 but 코드가 길어짐
    • 실수 연산에서 특정 소수점 자리까지 출력해야 하는 문제
    • 문자열을 특정한 기준에 따라 끊어서 처리해야 하는 문제
    • 적절한 라이브러리 찾아서 사용해야 하는 문제 (예시 - 순열, 조합)

 

시뮬레이션 유형

정의: 일련의 명령에 따라 개체를 주어진 공간내에서 이동시키는 문제

 

행렬(2차원 배열)

알고리즘 문제에서 2차원 공간은 행렬로 사용

 

방향 벡터

시뮬레이션 및 완전 탐색 문제에서는 방향 벡터가 잘 활용 됨

// 동, 북, 서, 남 순서로 이동 벡터 방향 값
int[] dx = {0, -1, 0, 1};
int[] dy = {1, 0, -1, 0};

 

 

 

완전 탐색(Brute Forcing)

  • 정의: 가능한 경우의 수를 모두 검사해보는 탐색 방법
  • 주의: 시간 복잡도가 크기 때문에, 시간 제약을 잘 확인해야함