티스토리 뷰
알고리즘 공부를 할 때 효과적인 방법
- 답을 보는 것이 부끄러운 것이 아니다.
- 문제를 풀 수 있는만큼 많이 풀어보자
- 라이벌을 정해보자( 단 이길 수 있을 것 같은 사람으로)
프로그래밍에서 하는 흔한 실수
- 쉬운 문제를 어렵게 푸는 것
- 컴퓨터가 잘하는 것은 따로 있다
- 컴퓨터가 잘하는 것을 최대한 활용하자.
가능한 모든 경우의 수를 다 해보는 것이 중요하다!
- 재귀 호출은 완전 탐색을 구현하는데 아주 효율적인 도구
재귀 함수를 구현하는 방법은 정형화 되어 있음
1. 기저 사례를 작성한다 : 함수가 끝나는 시점을 기저 사례라고 한다.
2. 재귀 함수를 호출한다.
3. 값을 반환한다.
단어의 개수(BOJ 1152)
1. 여러 단어가 한 줄에 걸쳐 주어진다.
2. 각 단어는 공백으로 구분 된다.
3. 입출력의 원리를 이해하고 있어야 한다.
단어 공부(BOJ 1157)
- 단어를 소문자 혹은 대문자로 변환
- 변환된 단어에 대해 사용된 알파벳의 수를 확인(아스키 코드)
- 아스키 코드를 활용하면 아주 쉽게 셀 수 있음. 알파벳 카운팅 배열 이용
- 문자 비교는 아스키 코드로 비교를 하게 된다.
- 대문자와 소문자를 비교할 때는 아스키 코드 32 만큼 차이가 난다.
최소공배수(BOJ 1934)
- 최소공배수를 어떻게 구할까?
1. A, B의 최대공약수를 gcd라 하자.
2. A, B의 최소공배수는 A * B / gcd로 계산이 가능하다.
3. gcd는 유클리드 호제법으로 쉽게 구할 수 있다.
A B
128 76
76 52
52 24
24 4
4 0
부분집합의 개수의 합
단어 나누기
- 케이스가 많지 않기 때문에 최적해보다는 전부다 해보는 것이 맞다.
- 만들 수 있는 모든 케이스를 만들어라.
-
팀원 구하기
- 비트 연산자로 이진수를 만들어서 각팀원이 풀수 있는 문제의 인덱스를 1로 표시한다.
-
'Computer Science > 자료구조 & 알고리즘' 카테고리의 다른 글
[BOJ] 2675 문자열 반복 (0) | 2021.06.27 |
---|---|
[BOJ] 1158 요세푸스 문제 (0) | 2021.05.25 |
[알고리즘] 마지막 수업 (0) | 2019.03.02 |
[알고리즘] 3회차 수업 (0) | 2019.02.17 |
[알고리즘] 완전 탐색 & 재귀함수 (0) | 2019.02.09 |
- Total
- Today
- Yesterday
- github
- Spring boot
- 재테크공부
- 깃허브
- 회고
- resize
- 월급쟁이부자들
- 도커
- 관계대수
- Use case
- 월부닷컴
- 작성 방법
- 파라메터
- push_back
- front
- 폭포수
- 열반스쿨기초반
- 유즈케이스
- 개발자 회고
- docker
- ```````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````
- 깃
- 2023년
- 부동산공부
- pop_back
- GIT
- 인셉션
- 바
- 내년은 빡세게!!
- Inception
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |