티스토리 뷰
알고리즘 공부를 할 때 효과적인 방법
- 답을 보는 것이 부끄러운 것이 아니다.
- 문제를 풀 수 있는만큼 많이 풀어보자
- 라이벌을 정해보자( 단 이길 수 있을 것 같은 사람으로)
프로그래밍에서 하는 흔한 실수
- 쉬운 문제를 어렵게 푸는 것
- 컴퓨터가 잘하는 것은 따로 있다
- 컴퓨터가 잘하는 것을 최대한 활용하자.
가능한 모든 경우의 수를 다 해보는 것이 중요하다!
- 재귀 호출은 완전 탐색을 구현하는데 아주 효율적인 도구
재귀 함수를 구현하는 방법은 정형화 되어 있음
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] 2309번 일곱 난장이 (0) | 2019.02.10 |
---|---|
[알고리즘] 완전 탐색 & 재귀함수 (0) | 2019.02.09 |
[데이터베이스] mysql root 비밀번호 없애기 (0) | 2019.01.24 |
[도메인 분석설계] GRASP : Designing Objects with Responsibilities(작성중) (0) | 2018.12.04 |
[오픈소스] ElasticSearch를 활용한 대용량 서울 지하철 데이터 넣기 (5) | 2018.12.02 |
- Total
- Today
- Yesterday
- Spring boot
- 내년은 빡세게!!
- 유즈케이스
- github
- front
- GIT
- 항해플러스백엔드
- resize
- 도커
- Inception
- 재테크공부
- 깃허브
- 파라메터
- 2023년
- 월부닷컴
- docker
- ```````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````
- Use case
- 항해솔직후기
- 관계대수
- 항해플러스후기
- 열반스쿨기초반
- 부동산공부
- 월급쟁이부자들
- 폭포수
- 깃
- 개발자 회고
- 인셉션
- pop_back
- push_back
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |