| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 윤성우 열혈자료구조
- R
- 이것이 자바다
- Graph
- Stack
- insertion sort
- C programming
- Selection Sorting
- stream
- ㅅ
- 혼자 공부하는 C언어
- s
- 알기쉬운 알고리즘
- 메모리구조
- list 컬렉션
- JSON
- coding test
- Serialization
- C 언어 코딩 도장
- 윤성우의 열혈 자료구조
- datastructure
- Algorithm
- 이스케이프 문자
- buffer
- Today
- Total
목록전체 글 (603)
Engineering Note
it 취업을 위한 알고리즘문제풀이 (with C/C++) : 코딩테스트 대비 코드 구현 방법1 기본적으로 약수를 구하는 방법 나누었을 때 나머지가 0이되면 몫과 제수가 바뀌어도 나머지는 0 이므로 몫으로 다시 나누지 않고 약수의 개수를 +2 주의 사항은 제곱수의 경우 몫과 제수가 같으므로 약수의 개수는 +1 시간복잡도가 N^2이 나오지 않음 코드 구현 방법2 약수의 개수를 배수로 구하기 N이 i의 배수라면 i는 N의 약수이다. 이러한 개념을 이용 ex) 1~8 까지에서 2의 배수는 2, 4(2+2), 6(4+2), 8(6+2) 약수 개수 해당하는 배열에 배수들에 인덱스 값에 1씩 증가
it 취업을 위한 알고리즘 문제풀이 (with C/C++) : 코딩테스트 대비 1. 초기 2. 최적화 문제해결 아이디어(초기) 입력된 값을 배열에 저장 문제 해결을 위한 반복문 루프 입력 된 숫자의 개수 N보다 배열의 인덱스가 작으면 Push 하고 'P'문자 저장 불가능 조건 체크 더 이상 Push 할 값이 없고 stack에 남아 있는 값이 교차로 B로 가야할 값보다 클경우 불가능 -교차로 stack Pop 반복문 현재 stack이 비어 있는 상태라면 Pop하지말고 다시 Push할 값 찾으러 break; 교차로 B로 가야할 check 값 과 stack의 top의 값이 같으면 Pop 하고 'O'문자 저장 아니면 break; 출력할 ch문자 P,O가 입력된 숫자의 2배 짝이 맞다면 가능한 상태로 break;..
0,1,2,3 인덱스 까지 정렬이 되어 있고 4 인덱스 부터 마지막 까지 뒤죽 박죽인 배열부터 먼저 생각하자 이유는 삽입 정렬은 정렬된 부분에 삽입하는 알고리즘으로 정렬 되지 않은 4번인덱스 부터 구현해 보면서 코드 구현 과정을 이해 해야 편하다. 최종에 가서는 어디서 부터 정렬 되어 있는지 모르는 데이터의 상태를 정렬해야 되기 때문에 첫번째 인덱스는 혼자 있으므로 무조건 정렬된 상태로 인식해도 되고 두번째 인덱스부터 반복 삽입정렬을 구현하면 된다. 이때 반복문을 작성하기 위한 이해단계로 0,1,2,3 인덱스 까지 정렬이 되어 있고 4 인덱스 부터 마지막 까지 뒤죽 박죽인 배열부터 먼저 생각해서 내부 반복문이 어떻게 생성되었는지 확인해보려고 한다. 현재 인덱스를 나타내는 변수 cur에 Index번호 4를..
삽입정렬 삽입정렬은 선택한 요소를 그 보다 더 앞쪽의 알맞은 위치에 '삽입하는' 작업을 반복하여 정렬하는 알고리즘이다. 선택정렬과 비슷하게 보일 수 있지만 단순 선택 정렬은 값이 작은 요소를 선택해 알맞은 위치로 옮긴다는 점이 다릅니다. 삽입정렬의 구체적 개념(오름차순 기준) 자료 배열의 모든 요소를 앞에서부터 차례대로 이미 정렬된 배열 부분과 비교 하여, 자신의 위치를 찾아 삽입함으로써 정렬을 완성하는 알고리즘 이다. 이미 정렬된 배열 부분과 비교 하기 위해서 두번째 요소(1번 인덱스)부터 선택하여 첫번째 요소(0번 인덱스)와 비교하여 오름차순에 위배된다면 오름차순이 되도록 앞쪽에 삽입합니다. 위의 단계를 수행하기위해 두 번째 자료부터 시작하여 그 앞(왼쪽)의 자료들과 비교하여 삽입할 위치를 지정한 후..
선택정렬 가장 작은 요소를 찾아 선택해 알맞은 위치로 옮겨서 순서대로 정렬하는 알고리즘이다. 선택정렬 알고리즘의 구체적 개념(오름차순 기준) 첫 번째 요소부터 마지막 요소 까지 비교하여 가장 작은 값을 찾아 첫 번째 요소에 위치 시킨다. 다시 두 번째 요소부터 마지막 요소 까지 비교 하여 가장 작은 값을 찾아 두 번째 요소에 위치 시킨다 위 과정을 반복 수핸한다. 선택 정렬 알고리즘 C언어 구현 SelectionSort 함수 배열의 주소와 사이즈를 인수로 받아 Min 함수로 최소값 찾고 Swap 함수로 교환 Min 함수 배열의 주소와 최소값 찾을 구간을 넘겨주면 구간에서 첫번째 요소인덱스를 min에 대입하고 구간에서 루프문으로 두번째 요소부터 마지막 요소까지 list[min]과 비교 하며 최소값 인덱스값..
버블 정렬 이웃한 두 요소의 대소 관계를 비교하여 교환을 반복한다. 버블정렬 알고리즘의 구체적 개념(오름차순 기준) 첫 번째 요소와 두 번째 요소를 비교하여 첫 번째 요소가 두 번째 요소보다 크다면 두 요소 값을 교환한다.두 번째 요소와 세 번째요소를 비교하여 두 번째 요소가 세 번째 요소보다 크다면 두 요소 값을 교환한다. 이런 식으로 세 번째와 네 번째를 ... (마지막-1)과 마지막 요소를 비교하여 (마지막 -1)요소가 마지막요소 보다 크다면 두 요소의 값을 교환한다. 위 단계를 수행하고 나면 가장 큰 값이 마지막 요소에 배치된다. 위 단계를 1회전 수행 후 2단계 수행시 비교는 마지막 요소는 제외한다. 즉, (마지막요소-2)와 (마지막요소-1)까지 비교, 교환을 수행한다. 2회전을 끝내고 나면 (..
it 취업을 위한 알고리즘 문제풀이 (with C/C++) : 코딩테스트 대비 #문제해결 방법 1.char형 배열에 입력된 문자열을 받는다. 2.'\0'(NULL,0)문자 전까지 ch[i] 각 배열 인덱스의 값이 '(' 인지 ')'인지 확인 2-1 '(' 이면 stack에 push, ')'이면 pop 2-2 이때 이미 스택이 비어있는 상태인데 즉 한번도 '('이 나오지 않았거나 나왔는데 ')'를 만나 pop해서 stack이 비어있을때 ')'를 이면 pop를 한다면 무조건 올바르지 않은 상태로 반복문 종료 시키고 "NO"값 출력 (이때 주의 할 사항 이때 3번 상태가 실행되지 않도록 상태 변수에 값을 변경시킴) 3. 정상적으로 for문이 종료 되었을때(상태변수로 확인하여 상태변수 값이 초기 설정값에 대해 ..
it 취업을 위한 알고리즘 문제풀이 (with C/C++) : 코딩테스트 대비 #문제 해결 과정 1. 입력받은 문자를 char형 배열에 저장 2. 실제 문자의(배열의 NULL앞에 문자의 인덱스 값구하기) 3. 마지막 문자부터 괄호의 올바른 형태를 비교 하여 상태값을 나타내는 cnt의 증감을 저장 4. cnt가 0 이면 "YES", cnt가 양수이거나 음수이면 "NO" #올바른 괄호의 형태 idea - '(', ')' 괄호문자가가 짝을 이루어야 한다. ( 홀수개 이면 무조건 올바르지 않은 괄호 "NO") - 개행 괄호가 있으면 반드시 폐행 괄호가 있어야함 마지막 괄호가 '(' 이면 올바르지 않은 괄호 "NO" - 배열의 뒤에서부터 검사해서 '('가 먼저 나오면 무조건 "NO" - 짝을 이루는 상태를 cnt..