분류 전체보기

coding_test/BAEKJOON

백준 11653번 C언어 풀이

https://www.acmicpc.net/problem/11653 11653번: 소인수분해 첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다. www.acmicpc.net 소인수분해에 관한 문제. 소인수분해를 하려면 일단 소수로 나눠야 해서 에라토스테네스의 체를 쓰려다가, 조금만 생각해보니 일단 2부터 나누고, 안나눠지면 1을 더해서 나눈다. 합성수로 나눠질수도 있다고 생각이 들었었지만, 애초에 2,3,5부터 나눠서 안나눠질때까지 나눠버리기 때문에 합성수가 끼어들 틈이 없다. #include int main () { int n; scanf("%d", &n); int a = 2; while (n != 1) { if (n % a == 0) { printf("%d\n", a); n /= a..

coding_test/BAEKJOON

백준 15829번 C언어 / C++ 풀이

https://www.acmicpc.net/problem/15829 15829번: Hashing APC에 온 것을 환영한다. 만약 여러분이 학교에서 자료구조를 수강했다면 해시 함수에 대해 배웠을 것이다. 해시 함수란 임의의 길이의 입력을 받아서 고정된 길이의 출력을 내보내는 함수로 정 www.acmicpc.net 자료형에 바이트가 정해진건 정말 귀찮다. 그냥 다 더하고 마지막에 나누기만 오버플로우가 나게 된다. 이걸 어떻게 해결하지 하다가 포기했던 문제인데, 나머지 연산(모듈러 연산)법칙에 관해 알게되어 어찌저찌 풀게 되었다. 나머지 연산의 법칙중 분배법칙을 이용해서 풀면 된다. 이중 1번째와 3번째를 이용하게 된다. 덧셈에 관한 증명은 여기서(https://sexycoder.tistory.com/66)..

coding_test/BAEKJOON

백준 1002번 C언어 풀이

https://www.acmicpc.net/problem/1002 1002번: 터렛 각 테스트 케이스마다 류재명이 있을 수 있는 위치의 수를 출력한다. 만약 류재명이 있을 수 있는 위치의 개수가 무한대일 경우에는 -1을 출력한다. www.acmicpc.net 말은 번지르르하지만 결국 두 원의 위치관계를 묻는 문제. 다만 두 원의 위치관계인 만큼 외접할 때만 따지는 것이 아니라 내접할 때도 따져야 한다. 내접을 까먹었다가 꽤 고생했다. 두 원의 위치관계는 구글에게 물어보자. #include int powi (int a, int exp) { int result = 1; for (int i = 0; i < exp; i++) { result *= a; } return result; } int main () { ..

coding_test/programmers

lv1 / 3진수 뒤집기 / C++

https://programmers.co.kr/learn/courses/30/lessons/68935?language=cpp 코딩테스트 연습 - 3진법 뒤집기 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 100,000,000 이하인 자연수 programmers.co.kr cpp 데뷔전(?)이다. 근데 문법을 모르니 상대적으로 난이도가 많이 올랐다...... C로 푼것과 거의 비슷하게 풀었다. #include #include #include using namespace std; int solution(int n) { int answer = 0; vector ar..

coding_test/programmers

lv1 / 3진수 뒤집기 / C

https://programmers.co.kr/learn/courses/30/lessons/68935?language=c 코딩테스트 연습 - 3진법 뒤집기 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 100,000,000 이하인 자연수 programmers.co.kr 자연수 n을 3진수로 변환한 후에 그 3진수를 뒤집고, 다시 10진수로 변환하는 문제. 처음부터 저장할때 뒤집어서 저장한 후에 10진수로 변환하면 된다. #include #include #include int solution(int n) { int answer = 0; int len = 0; in..

대학교/프로그래밍랩

[프로그래밍 랩] 2주차 - C언어 복습 2

문제 1. 다음과 같이 2 ~ 100 까지 수 중에서 솟수(1과 자기 자신 외에 약수가 없는 수)를 모두 출력하고, 그 소수들의 합을 구하는 프로그램을 작성하시오. 솟수인지 아닌지 판단하는 함수 isPrime(int n)을 작성해서 이용할 것. isPrime(int n) 는 n이 솟수이면 1, 솟수가 아니면 0을 return 한다. 소수 판정에 관한 문제. 에라토스테네스의 체 등, 여러가지 효율적인 알고리즘이 존재하지만, 여기서는 그냥 나누는 방법을 써보자. 소수는 1과 자기 자신만을 약수로 가지는 수이므로, 2부터 나누어 보면서 나누어 떨어지면 0을 반환한다. 기본적으로는 2 ~ n까지 나누어 보면서 검사하지만, 사실은 sqrt(n)까지만 나누어도 충분하다. n = ab라고 한다면, n이 정해져 있기 ..

대학교/프로그래밍랩

[프로그래밍 랩] 1주차 - C언어 복습 1

문제 1. sum = 100에서 시작하여 입력받은 정수를 빼서 정확히 sum = 0이면 끝나는 프로그램을 작성하시오. while문 + if문 조건을 통한 break #define _CRT_SECURE_NO_WARNINGS #include void main() { int n, sum = 100; while (1) { printf("sum=%d ", sum); if (sum == 0) { break; } else { printf("뺄 값 입력: "); scanf("%d", &n); sum -= n; } } } 문제 2. oddsum1(n), oddsum2(n), oddsum3(n) 함수는 1 ~ n 까지 홀수만 더하여 그 값을 return 하는 함수이다. (1) ~ (4) 까지 완성하시오. (1) for 문..

coding_test/BAEKJOON

백준 3053번 C언어 풀이

https://www.acmicpc.net/problem/3053 3053번: 택시 기하학 첫째 줄에는 유클리드 기하학에서 반지름이 R인 원의 넓이를, 둘째 줄에는 택시 기하학에서 반지름이 R인 원의 넓이를 출력한다. 정답과의 오차는 0.0001까지 허용한다. www.acmicpc.net 비유클리드 기하학인 택시기하학에 관한 문제. 이 문제는 풀이가 어려운 것이 아닌 택시기하학에 관한 이해가 먼저인 문제이다. 백준에 올라온 설명만 가지고는 솔직히 무슨말인지 잘 몰랐다. 그래서 따로 조사하고 나서야 이해가 갔다. 유클리드 기하학의 좌표계에서는 두점(a1, b1)과 (a2, b2)사이의 거리는 다음과 같이 구해진다. 하지만 택시기하학에서는 다음과 같이 정의한다. 수평거리 + 수직거리인 셈이다. 이 문제에서는..

CodeJin
'분류 전체보기' 카테고리의 글 목록 (25 Page)