본문 바로가기

전체 글210

[C] 백준 10828 https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 스택 - 선형 자료구조 - LIFO(Last-In, First-Out) - 배열 기반 구현 - 연결리스트 기반 구현 스택 ADT - init - empty - push - pop - peek ADT(Abstract Data Type) - 추상자료형 - 구체적인 기능의 완성과정을 언급하지 않고, 순수하게 기능이 무엇인지를 나열한 것 #include #include typedef s.. 2022. 1. 16.
[C] 백준 1850 https://www.acmicpc.net/problem/1850 1850번: 최대공약수 모든 자리가 1로만 이루어져있는 두 자연수 A와 B가 주어진다. 이때, A와 B의 최대 공약수를 구하는 프로그램을 작성하시오. 예를 들어, A가 111이고, B가 1111인 경우에 A와 B의 최대공약수는 1이고, A www.acmicpc.net 입력되는 수는 2^63보다 작은 자연수이므로 long long 데이터 타입을 사용한다. 모든 자리가 1로 이루어지기 때문에 A와 B를 이루는 1의 개수의 최대공약수를 구하고 그 최대공약수 만큼 1을 출력하면 A와 B의 최대공약수를 출력할 수 있다. 최대공약수는 유클리드 알고리즘을 이용하여 구했다. #include long long func(long long A, long lo.. 2022. 1. 9.
[C] 백준 11576 https://www.acmicpc.net/problem/11576 11576번: Base Conversion 타임머신을 개발하는 정이는 오랜 노력 끝에 타임머신을 개발하는데 성공하였다. 미래가 궁금한 정이는 자신이 개발한 타임머신을 이용하여 500년 후의 세계로 여행을 떠나게 되었다. 500년 후의 www.acmicpc.net 문제가 길지만 해야하는 건 간단하다. 1. A진법 수를 10진법으로 변환 2. 10진법 수를 B진법으로 변환 3. B진법 수 출력 A_to_ten 함수에서 A진법 수를 10진법으로 변환해서 반환하였다. 반환값은 변수 C에 저장하였다. ten_to_B 함수는 재귀함수이다. 이 함수를 이용하여 10진법을 B진법으로 변환하여 출력하였다. #include #include int A_to.. 2022. 1. 7.
[C] 백준 11005 https://www.acmicpc.net/problem/11005 11005번: 진법 변환 2 10진법 수 N이 주어진다. 이 수를 B진법으로 바꿔 출력하는 프로그램을 작성하시오. 10진법을 넘어가는 진법은 숫자로 표시할 수 없는 자리가 있다. 이런 경우에는 다음과 같이 알파벳 대문자를 www.acmicpc.net 10진법 수 N을 B진법으로 바꾸는 문제이다. B의 범위는 2 ≤ B ≤ 36이다. 만약에 314라는 10진수의 각 자리수를 파싱한다면 314 % 10 = 4 (출력) 314 / 10 = 31 31 % 10 = 1 (출력) 31 / 10 = 3 3 (출력) 나머지 연산과 나눗셈을 반복함으로써 각 자리수를 나눌수 있다. 나누는 수는 그 수의 진법이다. (10진법이므로 10을 나누었다) 다른 진.. 2022. 1. 7.
[C] 백준 1373 자리수 구분의 용이성을 위해 2진수를 문자열로 받는다. 문자열로 받으면 배열의 인덱스를 통해 자리수 구분이 가능하다. 8진수를 구하기 위해서는 2진수를 3개씩 묶어야 한다. 이 때 문제가 되는 경우는 3으로 나누어 떨어지지 않는 경우다. 나머지가 1, 2인 조건에서 최상위 자리의 8진수 값을 출력하였고 이후에는 2진수를 8진수로 변환하는 반복문을 돌렸다. #include #include #include #include char bin[1000000]; int main() { int len; int r; int oct = 0; scanf("%s", bin); len = strlen(bin); r = len % 3; if (r == 1) { oct += (bin[0] - 48) * 1; printf("%d".. 2022. 1. 6.
드론 가드 정비 할 말은 많지만 힘들어서 사진이랑 동영상만 올림... 2021. 9. 7.