일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- C programming
- stream
- buffer
- list 컬렉션
- 윤성우 열혈자료구조
- Selection Sorting
- 메모리구조
- 혼자 공부하는 C언어
- Graph
- Serialization
- Stack
- insertion sort
- 이것이 자바다
- C 언어 코딩 도장
- Algorithm
- JSON
- 윤성우의 열혈 자료구조
- coding test
- s
- R
- 이스케이프 문자
- 알기쉬운 알고리즘
- datastructure
- Today
- Total
목록Problem Solving (182)
Engineering Note

it 취업을 위한 알고리즘 문제풀이 문제 코드 문제해결방법 2차원 배열 입력 받기(1,1 부터, 외부 배열은 전역변수로 초기값 0으로) 2중 for문으로 1,1부터 n,n까지 현재 기준 값 기준으로 상하좌우 값 비교 상하좌우 코드 비교방법1 if문에서 4가지 경우의 수 모두 만족 &&조건 참이면 카운트 값 증가 상하좌우 코드 비교방법2 상하좌우 방향 배열을 인덱스 값으로 활용해서 3번째 for문으로 4번 조건 검사 한 번이라도 조건에 부합하지 않으면 break; 체크 변수(flag) 표시 , check 변수(flag) 값의 변화가 없다면 카운트 값 증가

it 취업을 위한 알고리즘 문제풀이 문제 코드 문제해결방법 N: a배열의 크기, M: b배열의 크기 a배열의 인덱스 위치를 가리키는 문자 i이고, b배열의 인덱스 위치를 가리키는 문자 j일 때 i가 0부터 N-1까지, j가 0부터 M-1까지 비교하며 작은 값을 c배열에 입력한다. 비교를 해가며 남은 배열은 이제 모두 차례로 c배열에 입력하면 된다. 첫 번째 while의 조건문에서 (i < N)를 A집합, (j < M)를 B 집합이라고 하면 A and B 논리곱일 때 조건이 참이고 두 번째 while의 조건문에서 는 A여집합 and B조건 일때를, 세 번째 while의 조건문에서는 A and B여집합를 나타내므로 아래 두개의 while문(두번째, 세번째 while문)은 하나만 실행된다. 두번째 while문..

it 취업을 위한 알고리즘 문제풀이 문제 코드1 코드1 함수화 작업 코드2 문제해결방법 문제를 해결하기위한 방법을 작게 세분화한다. 연속된 자연수의 합의 개수는 쉽게 구할수 있다. 이중 for문을 이용해서 N-1부터 내림차순으로 연속된 수의 합을 누적하여 구하고 누적된 값이 N일 경우 cnt를 증가시킨다. 연속된 자연수의 합을 구했을 때 출력방법을 고민한다. 누적 값이 N이 됐을때 이중 for문에서 사용된 j를 이용해서 현재의 j값 부터 j의 초기값 i까지 출력하면서 수식을 출력한다. 수학적으로 해결하기 연속된 2개의 숫자의 합으로 N이 되려면 0 00 // 000 0000 0000 이렇게 15개가 있을 때 2명에게 나머지 12개를 분배해주는 때 똑같이 분배해준다고 생각하면 됨 두명은 각각 1개, 2개를..

it 취업을 위한 알고리즘 문제풀이 문제 코드1 코드2 문제해결방법 입력 값을 문자열 서식지장저 %s로 배열에 입력 받으면 마지막은 NULL로 입력된다. 문제의 조건에 따라 a와 b가 1일 경우를 각각 예외를 조건문으로 구현하면 C 바로 다음에(인덱스 1번에 )H가 입력 된 경우, H 바로 다음에 NULL이 입력된 경우이다. 각각의 if문 이외의 경우에 탄소의 수를 구하는 코드를 구현하면 배열에 값이 1번부터 H가 나올 때까지 배열의 문자로 저장된 값을 숫자로 변경해주고 누적 값을 구할때마다 기존값에 10을 곱해 자리수를 증가시켜준다. 이때 수소의 위치를 i값으로 확인가능하다. 하지만 인덱스 1에 H가 있을 경우에도 꼭 H의 위치를 표시해주어야 한다. 수소의 수를 구하는 코드는 H다음 값부터 NULl이 ..

it 취업을 위한 알고리즘 문제풀이 문제 코드 문제해결방법 1부터 N까지 각 숫자를 10으로 나누면서 3이 있으면 카운트 값을 증가시킨다.

it 취업을 위한 알고리즘 문제풀이 문제 코드1 코드2 문제해결방법 factorial을 직접 구하고 10의 배수를 구하면 long long의 범위 마저 넘는 수 생기므로 계산하지말고 소인수 분해를 한다. 소인수분해 하는 방법은 1부터 n까지 2로 나누어 떨어지지 않을 때까지 나누고 나누어 떨어지지 않으면 3으로 나누고 다시 3으로 나누어 떨어지지 않으면 4로 나누는데 이때 4로는 절대 나누어 떨어지지 않으므로 걱정하지 않아도 된다. 이유는 이미 2로 나누어 떨어지지 않을 때까지 나누었기 때문에 2의 배수로는 앞으로도 나누어 떨어지지 않는다. 이렇게 2,3,4,5... 나누어떨어질때 까지 나누고 체크배열에 인덱스값과 해싱기법에 따라 개수를 표시한다. 반복문에서 5와 2의 개수를 and조건에 따라 개수를 카..

it 취업을 위한 알고리즘 문제풀이 문제 코드 문제해결방법 N! = N*(N-1)*(N-2)*...*2*1 소수의 개수가 나온 값들은 체크를 위한 배열에 증가시키는데 동적할당된 메모리공간에 초기값들은 0으로 초기화 해두기 위해서 calloc함수를 사용 1~N까지의 곱으로 표현되어 있는 수들 각각 소수들의 곱으로 표현하기 위해서 각각의 수들을 다시 2부터 계속 나누어 나누어떨어질때 까지 나누고 더 이상 나누어 떨어지지 않으면 1씩 증가시키면서 3,4,5,6,7로 나누어서 나누어 떨어지면 체크를 위한 수들과 해싱된 배열에 값을 1씩 증가