공부/패스트 캠퍼스 챌린지

코딩테스트 - 패스트캠퍼스 챌린지 25일차

kNOwAnswer 2022. 2. 17. 21:29

수강한 강의

Part 3. 알고리즘 유형별 풀이

Chapter 02 알고리즘
- 어떻게든 푼다. 완전 탐색 (Brute Force) - 응용 편

학습 후기

이전 강의가 완전 탐색 기본이었다면 이번 강의는 조금 더 난이도 있는 문제들이 주어졌다.

문제를 풀 때 다음과 같은 순서로 문제를 푼다.

1. 문제 파악

주어진 문제를 파악하고 어떤 자료형을 쓸지 확인한다. 백준 알고리즘 사이트의 경우 문제 윗부분에 시간제한, 메모리 제한이 나와있고 입력, 출력에 어떤 자료형을 쓸지에 대한 힌트가 있다. 풀기 전에 확인하고 풀자.

2. 문제 스케치하기

문제를 보고 변수를 알맞은 자료형으로 선언해 놓는다. 코드를 작성하기 전에 한 줄 한 줄 주석으로 어떤 기능을 구현할 건지 적어본다.

3. 코드 작성

코드를 작성하면서 코드가 길어진다 싶으면 따로 함수 화한다.

 

강의를 보면서 강사님이 코드를 작성하는 걸 보면 너무 쉽게 푸신다. 코드를 짜는 시간은 그렇게 길지 않고 알고리즘 문제를 해석하고 제약 조건을 확인하고 어떻게 구현할지 코드를 작성하기 전 주석으로 적는 시간이 확실히 더 길다.

물론 오랜 경험과 반복적인 학습으로 코드를 뚝딱뚝딱 짜시는 것이겠지만 정말 깔끔하게 잘 짜시는 것 같다. 완전 탐색이라 그런지 어려운 자료구조나 알고리즘은 아니지만 누구나 읽기 쉽게 짜는 것 또한 중요한 것 같다.

문제를 풀면서 시간 초과가 난다면 어느 부분에서 시간 초과를 줄일 수 있는지 생각해보자. 완전 탐색에서 재귀 함수를 통해 구현할 때 조건을 재귀 함수 실행 전에 확인하느냐 재귀 함수를 들어가서 확인하느냐에 따라서도 문제를 해결하고 못하고 판다름 나기에 잘 생각해봐야 한다.

 

아래는 이번 강의에서 풀어본 백준 문제이다.

연산자 끼워 넣기

https://www.acmicpc.net/problem/14888 

 

14888번: 연산자 끼워넣기

첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, 

www.acmicpc.net

N-Queen

https://www.acmicpc.net/problem/9663

 

9663번: N-Queen

N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다. N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오.

www.acmicpc.net

부분 수열의 합

https://www.acmicpc.net/problem/1182

 

1182번: 부분수열의 합

첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 20, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두고 주어진다. 주어지는 정수의 절댓값은 100,000을 넘지 않는다.

www.acmicpc.net

수강 인증샷

https://bit.ly/37BpXiC

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.

반응형