c언어 6

[C] 유클리드 호제법을 이용해서 최대공약수와 최소공배수 구하기

(연관문제) https://www.acmicpc.net/problem/2609 2609번: 최대공약수와 최소공배수 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. www.acmicpc.net [소스코드 - 백준 2609 C 풀이] #include // [baekjoon] 2609번 - 최대공약수와 최소공배수 int gcd(int min, int max) {// 최대공약수 구하기 int remainder = 1; while (remainder != 0) { remainder = max % min; max = min; min = remainder; } return max; } int lcm(int min, int max) {// 최소공배수 구..

[C] 백준 11170번 - 0의 개수

https://www.acmicpc.net/problem/11170 11170번: 0의 개수 N부터 M까지의 수들을 종이에 적었을 때 종이에 적힌 0들을 세는 프로그램을 작성하라. 예를 들어, N, M이 각각 0, 10일 때 0을 세면 0에 하나, 10에 하나가 있으므로 답은 2이다. www.acmicpc.net (21.08.07) 11170번: 0의 개수 - C언어 풀이 [소스코드] #include // [baekjoon] 11170번 - 0의 개수 int check_0(int n, int m) { int cnt = 0; for (int i = n; i 0) { if (i2 % 10 == 0)cnt++; i2 /= 10; } } return cnt; } int main() { int T, N, M; s..

[C] 백준 21567번 - 숫자의 개수 2

https://www.acmicpc.net/problem/21567 21567번: 숫자의 개수 2 첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 1,000,000보다 작은 자연수이다. www.acmicpc.net (21.08.07) 21567번: 숫자의 개수 2 - C언어 풀이 [소스코드] #include // [baekjoon] 21567번 - 숫자의 개수 2 int main() { long long A, B, C; long long D = 1; int cnt[10] = { 0 }; scanf("%lld", &A); scanf("%lld", &B); scanf("%lld", &C); D = A * B * C; while (D > 0) { int n = D % 10; c..

[자료구조] - 4. 추상자료형, 리스트 ADT

추상자료형, 리스트 ADT 추상자료형(abstract data type, ADT): 데이터구조의 추상형 ADT는 다음을 명세 1. 저장된 데이터 2. 데이터에 대한 작업들 3. 작업 중 발생 가능한 에러 상황들 예: 주식거래 시스템을 모델링한 ADT 1. 데이터 : 구매, 판매 주문들 2. 지원하는 작업 : 주식 구매, 판매, 취소 3. 에러 상황 : 존재하지 않는 주식에 대한 주문 추상자료형(abstract data type, ADT)에 대해서 알아보겠습니다. 추상자료형은 자료구조를 추상적으로 표현한 것으로, 사람이 자료를 다루는 관점에서 자료구조를 표현한 것입니다. 쉽게 말하면 실제 기능의 구현방법을 제외하고, 기능이 무엇인지만 설명하는 것이 추상자료형입니다. 예를 들어 카카오톡을 추상자료형으로 나타..

[자료구조] - 3. 배열, 연결리스트

배열, 연결리스트 배열(array) : 순차 기억장소에 할당된 유한 개수의 동일 자료형 데이터원소들 베이스(base) : 배열의 첫째 셀 위치 오프셋(offset) : 해당 셀이 베이스로부터 떨어진 거리(변위차)를 나타내는 정수형 2차원 배열 : 테이블(table)이라고도 불림, 1차원과 2차원은 각각 행(row)과 열(column)로도 불림 이번 게시글에서는 자료구조를 구축하는 바탕인 배열과 연결리스트에 대해서 살펴보겠습니다. 자료구조는 비교적 추상적인 반면, 배열과 연결리스트는 상대적으로 구체적(컴퓨터 구조에 가까움)이기 때문에 자료구조를 배열과 연결리스트로 구현하게 됩니다. 배열은 비교적 간단한 개념인데요. 쉽게 이야기하면 데이터를 순차적으로 메모리에 배치한 자료구조 라고 할 수 있습니다. 오프셋(..

[자료구조] - 2. 재귀

재귀 재귀적(recursive) 알고리즘 : 알고리즘 자신을 사용하여 정의된 알고리즘 재귀의 요소 재귀 케이스(recursion) : 차후의 재귀호출은 작아진 부문제들(subproblems)을 대상으로 이루어진다 베이스 케이스(base case) : 부문제들이 충분히 작아지면, 알고리즘은 재귀를 사용하지 않고 이들을 직접 해결한다. 재귀 알고리즘에 대해서 살펴보겠습니다. '재귀(再歸)'라는 단어는 일상에 잘 쓰이지 않는 단어라 쉽게 이해되지 않는 것이 사실입니다. 재귀를 한자를 그대로 풀어보면 다시(再) 돌아오다(歸)라는 뜻입니다. 재귀를 부르는 원래 단어 recursion 역시 '반복, 되풀이' 라는 뜻입니다. 따라서, 재귀 알고리즘은 (자기 자신으로) 다시 돌아오는 알고리즘 이라고 할수 있겠습니다. ..