그리디 & 구현

강민성·2023년 7월 19일
0

그리디 알고리즘

현재 상황에서 지금 당장 좋은 것만 고르는 방법
사전에 암기하고 있지 않아도 창의력(아이디어)으로 풀 수 있을 가능성이 높은 유형
일반적인 상황에서는 최적의 해를 보장하지 못하기 때문에, 정당성 분석(단순히 가장 좋아 보이는 것을 반복적으로 선택해도 최적의 해를 낼 수 있는지 검토하는 과정) 필요 -> 그리디 유형인 경우에는 그렇게 풀어도 답을 낼 수 있게 출제

구현

머릿속에 있는 알고리즘을 소스코드로 바꾸는 과정(모든 알고리즘에 필요)
구현 유형은 이러한 구현 과정이 문제 해결 과정의 주 요소인 알고리즘 유형
= 풀이를 떠올리는 것은 쉽지만 소스코드로 옮기기 어려운 문제

  • 예시
    알고리즘은 간단한데 코드가 지나치게 길어지는 문제(언어에 따라 코드 길이가 달라질 수도 있음)
    실수 연산을 다루고, 특정 소수점 자리까지 출력해야 하는 문제
    문자열을 특정 기준에 따라 끊어 처리해야 하는 문제
    문제에 맞는 적절한 라이브러리를 찾아서 사용해야 하는 문제 -> 특정 라이브러리를 사용하면 간단하게 풀리는 경우가 많음(ex. 순열, 조합)
    cf.) 2차원 배열, 2중 리스트 = 행렬
    시뮬레이션 및 완전 탐색 문제에서는 행렬에서의 방향 벡터가 자주 활용됨

예제

왕실의 나이트

profile
Back-end Junior Developer

0개의 댓글