안녕하세요. 지칸입니다.
2장-2에서는 나머지 유형에 대해 간단히 살펴보겠습니다.
마찬가지로, 문제 분석 과정에서 어떤 알고리즘을 써야겠다고 생각이 든다면 기계적으로 외웠던 템플릿을 먼저 작성합니다.
2-1) DFS, BFS 유형
2-2) 경우의 수, 순열, 조합 유형
2-3) 시뮬레이션 유형
2-4)1~3 혼합 유형
2-2) 경우의 수, 순열, 조합 유형
수많은 선택지 중 어떤 선택을 할 때 최적의 값이 무엇인지 등의 문제로 출제되는 유형입니다.
각 알고리즘에 대한 설명은 추후 설명하도록 하겠습니다. 자주 사용하는 코드를 보여드리겠습니다.
그림1은 순열 코드입니다. 벡터를 사용하여 구현하였습니다. 저는 STL를 적극적으로 사용하는 편인데 수많은 기능을 사용할 수 있어 구현시간을 에러없이 단축시킬 수 있는 장점이 있습니다. (코드 길이도 매우 짧아져 이해하기 쉬움)
그림2는 조합 코드입니다. 흔히 for문과 if만 알고있으면 경우의 수 문제를 구현하는데 문제 없다고 생각합니다.
틀린말은 아니지만, 매우 비효율적이고 휴먼에러가 발생할 확률이 높습니다.
각 유형마다 템플릿을 만들고 사용한다면 코드 효율을 높일 수 있고 문제에 따라 적용하기가 쉽습니다.
2021.04.16 - [알고리즘/SW역량테스트 기출문제] - [백준 14888번] 연산자 끼워넣기 (순열)
2021.04.08 - [알고리즘/SW역량테스트 기출문제] - [백준 15686번] 치킨배달 (조합)
2021.04.14 - [알고리즘/SW역량테스트 기출문제] - [백준 14889번] 스타트와 링크 (조합)
2021.04.18 - [알고리즘/SW역량테스트 기출문제] - [백준 15683번] 감시 (조합)
2021.04.20 - [알고리즘/SW역량테스트 기출문제] - [백준 14501번] 퇴사 (조합)
2-3) 시뮬레이션 유형
시뮬레이션(모듈화) 유형은 특별한 템플릿이 없기 때문에 어려움을 겪는 분들이 많습니다.
저는 문제를 읽고 각 프로세스 단계를 구분하여 함수를 생성하고, 함수의 덩치가 커질수록 이해하기 어렵기 때문에 최대한 기능이 작더라도 의미별로 함수로 분리하여 코딩합니다.
2021.04.16 - [알고리즘/SW역량테스트 기출문제] - [백준 14503번] 로봇 청소기 (시뮬레이션)
2021.04.16 - [알고리즘/SW역량테스트 기출문제] - [백준 15685번] 드래곤 커브 (시뮬레이션)
2021.04.17 - [알고리즘/SW역량테스트 기출문제] - [백준 14891번] 톱니바퀴 (시뮬레이션)
2-4)1~3 혼합 유형
대부분의 문제가 한가지 유형으로 나오지 않습니다.
BFS+조합, 조합+시뮬레이션 등 섞여서 나오는 경우가 많으며 템플릿을 기본으로 작성하고 문제가 요구하는 답을 출력할 수 있도록 약간의 수정하는 방식으로 시험을 봤습니다.
각 알고리즘에 대한 설명 이후 예제를 통해 설명해보겠습니다.
2021.04.08 - [알고리즘/SW역량테스트 기출문제] - [백준 14502번] 연구소 (조합, BFS)
2021.04.08 - [알고리즘/SW역량테스트 기출문제] - [백준 17142번] 연구소 3 (조합, BFS)
'알고리즘 > SW역량테스트' 카테고리의 다른 글
(3장-1) DFS(깊이 우선탐색) 알고리즘이란? (0) | 2021.03.08 |
---|---|
그래프 개념과 탐색방법 (0) | 2021.03.04 |
(2장-1) 역량 테스트 출제 유형 (0) | 2019.04.26 |
(1장-1) 역량 테스트 기본 템플릿 준비 (0) | 2019.04.25 |
(0장) 삼성 SW 역량 테스트 준비 (0) | 2019.04.24 |
댓글