수강한 강의
Part 3. 알고리즘 유형별 풀이
Chapter 02 알고리즘
- 어떻게든 푼다. 완전 탐색 (Brute Force) - 응용 편
학습 후기
이전 강의가 완전 탐색 기본이었다면 이번 강의는 조금 더 난이도 있는 문제들이 주어졌다.
문제를 풀 때 다음과 같은 순서로 문제를 푼다.
1. 문제 파악
주어진 문제를 파악하고 어떤 자료형을 쓸지 확인한다. 백준 알고리즘 사이트의 경우 문제 윗부분에 시간제한, 메모리 제한이 나와있고 입력, 출력에 어떤 자료형을 쓸지에 대한 힌트가 있다. 풀기 전에 확인하고 풀자.
2. 문제 스케치하기
문제를 보고 변수를 알맞은 자료형으로 선언해 놓는다. 코드를 작성하기 전에 한 줄 한 줄 주석으로 어떤 기능을 구현할 건지 적어본다.
3. 코드 작성
코드를 작성하면서 코드가 길어진다 싶으면 따로 함수 화한다.
강의를 보면서 강사님이 코드를 작성하는 걸 보면 너무 쉽게 푸신다. 코드를 짜는 시간은 그렇게 길지 않고 알고리즘 문제를 해석하고 제약 조건을 확인하고 어떻게 구현할지 코드를 작성하기 전 주석으로 적는 시간이 확실히 더 길다.
물론 오랜 경험과 반복적인 학습으로 코드를 뚝딱뚝딱 짜시는 것이겠지만 정말 깔끔하게 잘 짜시는 것 같다. 완전 탐색이라 그런지 어려운 자료구조나 알고리즘은 아니지만 누구나 읽기 쉽게 짜는 것 또한 중요한 것 같다.
문제를 풀면서 시간 초과가 난다면 어느 부분에서 시간 초과를 줄일 수 있는지 생각해보자. 완전 탐색에서 재귀 함수를 통해 구현할 때 조건을 재귀 함수 실행 전에 확인하느냐 재귀 함수를 들어가서 확인하느냐에 따라서도 문제를 해결하고 못하고 판다름 나기에 잘 생각해봐야 한다.
아래는 이번 강의에서 풀어본 백준 문제이다.
연산자 끼워 넣기
https://www.acmicpc.net/problem/14888
N-Queen
https://www.acmicpc.net/problem/9663
부분 수열의 합
https://www.acmicpc.net/problem/1182
수강 인증샷
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
'공부 > 패스트 캠퍼스 챌린지' 카테고리의 다른 글
코딩테스트 - 패스트캠퍼스 챌린지 27일차 (0) | 2022.02.19 |
---|---|
코딩테스트 - 패스트캠퍼스 챌린지 26일차 (0) | 2022.02.18 |
코딩테스트 - 패스트캠퍼스 챌린지 24일차 (0) | 2022.02.16 |
코딩테스트 - 패스트캠퍼스 챌린지 23일차 (0) | 2022.02.15 |
코딩테스트 - 패스트캠퍼스 챌린지 22일차 (0) | 2022.02.14 |