목록컴퓨터공학 (74)
cyphen156
3052번: 나머지 (acmicpc.net) 수를 10개 입력받은 뒤, 42로 나눈 나머지를 구해, 서로 다른 값이 몇 개 있는지를 출력풀이 방법은 두가지가 있다. 이전 문제처럼 고정사이즈 배열에 초기화 값을 통해 제어할 지 아니면 벡터를 통해 중복값을 제외하고 푸시로 밀어넣을지 벡터를 통한 방법은 매 입력 회차마다 벡터를 순회해봐야 된다는 단점이 있지만 사이즈 출력때 순회가 없다. 시간 복잡도는 1. 고정사이즈 배열 초기화 => N2. 벡터를 통한 중복값 제어 => N**2지금은 INPUT의 횟수가 10, 나누는 값이 42로 매우 작아 별로 차이가 나지 않지만 만약 나누는 값이 조금만 커진다면 벡터를 통한 순회는 시간복잡도가 기하급수적으로 늘어나므로 1번을 통해 문제를 풀어야 한다.제약사항0 주의 사..
5597번: 과제 안 내신 분..? (acmicpc.net) 한정된 숫자 내에서 빠진 숫자를 찾는 프로그램제약사항0 nInput == 28주의 사항출력시 오름차순 정렬 출력C 풀이과제 안 내신 분_5597.c고정사이즈 배열을 통한 초기화 및 순회탐색 초기값 0이 아니라면 한번 입력된 수이다.cnt 변수를 통한 순회탐색 중지/*** 백준 1차원 배열 10813 공 바꾸기* 한정된 숫자 내에서 빠진 숫자를 찾는 프로그램** 제한사항****************************************** 0 int main(void){ int N, cnt = 0; int arr[31] = {0}; for (int i = 0; i C++ 풀이 과제 안 내신 분_5597.cpp/*** 백준 1차..
10813번: 공 바꾸기 (acmicpc.net) 이전 문제에서 이어지는 연계문제, 초기에 공이 모두 N번 바구니에 N번 공이 들어가있다고 가정한다. M번 교환을 시도하는데 두 바구니를 선택하여 서로 공을 교환한다.제약사항0 0 주의 사항간단한 변수 교체 가능 여부를 물어보는 문제이다. 임시변수를 사용하여 두 바구니에 있는 공들을 바꾼다.C 풀이공 바꾸기_10813.c인덱스를 0부터 쓰려고 반복문 안의 변수 사용이 항상 -1인덱스를 지정한다./*** 백준 1차원 배열 10813 공 바꾸기* 이전 문제에서 이어지는 연계문제, 초기에 공이 모두 N번 바구니에 N번 공이 들어가있다고 가정한다. * M번 교환을 시도하는데 두 바구니를 선택하여 서로 공을 교환한다.** 제한사항*******************..
10810번: 공 넣기 (acmicpc.net) N개의 바구니, 번호 N이 적혀있는 무수히 많은 공들(ex 1번공 N개)한 바구니에 공을 한개씩 넣을 수 있다. 그런데 M번만 넣을 것 이다.공을 넣는 방법은 주어진 세 정수(i, j, k)를 통해 i번 바구니부터 j번 바구니까지 k번 공을 넣는다.제약사항0 0 0 if (j 주의 사항첫 번째 입력사항에선 N과 M의 입력을 실시한다.두번째 줄부터 M개의 줄에 공을 넣는 방법이 주어진다. 배열 입력을 덮어쓸 수 있는지 물어보는 문제다.C 풀이공 넣기_10810.c/*** 백준 1차원 배열 10810 공 넣기* N개의 바구니, 번호 N이 적혀있는 무수히 많은 공들(ex 1번공 N개)* 한 바구니에 공을 한개씩 넣을 수 있다. 그런데 M번만 넣을 것 이다.* ..
2562번: 최댓값 (acmicpc.net) 9개의 서로 다른 자연수가 주어질 때 최댓값을 찾고 몇번째 수인지 구하는 프로그램을 작성하시오.제약사항0 주의 사항첫째 줄에 최댓값을 출력하고, 둘째 줄에 몇번째 수인지 출력한다.C 풀이최댓값_2562.c이전 문제와 같이 비효율적인 방식을 유지하였다. /*** 백준 1차원 배열 2562 최댓값* 9개의 서로 다른 자연수가 주어질 때 최댓값을 찾고 몇번째 수인지 구하는 프로그램을 작성하시오.* 입력과 동시에 MAX값 비교, 순서 저장** 제한사항****************************************** 0 #include using namespace std;int main(void){ int INPUT, MAX = 0, cnt = 0; ..
10818번: 최소, 최대 (acmicpc.net) 입력된 정수들의 최소, 최대값을 구하는 프로그램두가지 방법이 존재한다.모든 정수를 입력받은 이후 최소, 최대값을 연산할 것인지?->C풀이입력받는 즉시 최소, 최대값을 비교하여 순회 횟수를 줄일 것인지?-> C++풀이제약사항0 -1,000,000 주의 사항첫째 줄에 주어진 정수 N개의 최솟값과 최댓값을 공백으로 구분해 출력한다.C 풀이최소, 최대_10818.c반복문을 2번 돌기 때문에 시간낭비가 심하다. /*** 백준 1차원 배열 10818 최소, 최대* 입력된 정수들의 최소, 최대값을 구하는 프로그램* 두가지 방법이 존재한다.* 모든 정수를 입력받은 이후 최소, 최대값을 연산할 것인지?->C풀이* 입력받는 즉시 최소, 최대값을 비교하여 순회 횟수를 줄..
10871번: X보다 작은 수 (acmicpc.net) N개로 이루어진 수열 A, X를 주었을 때 수열 안에서 X보다 작은 수를 모두 출력하라.제약사항0 0 주의 사항수를 입력받은 순서대로 공백을 주어 출력한다.--> 정렬 안한다.----> 브루트 포스 식으로 순열 전체를 순회해야한다.C 풀이X보다 작은 수 _10871.cC언어로 풀 때에는 메모리 사이즈에 항상 주의하면서 풀어야 한다.0으로 초기화한 결과 배열을 하나 복제해놓고, 수열 입력시 바로 X와 비교하여 result배열안에 집어넣음으로써 전체 순회를 한번 더 수행하지 않고, 결과배열이 0이 아닐 때까지만 순회하여 출력하게 만듦으로써 최적화 해 보았다./*** 백준 1차원 배열 10871* 정수 N개로 이루어진 수열 A와 X를 주었을 때 X보다 작..
10807번: 개수 세기 (acmicpc.net)N개의 정수중 정수 V의 개수 세기제약사항0 -100 주의사항INPUT의 범위가 명시되어 있지 않지만 V값으로 추론이 가능하다. C 풀이개수 세기_10807.c/*** 백준 1차원 배열 10807 개수 세기* N개의 정수중 정수 V의 개수 세기* * 제한사항****************************************** 0 #include int main(void){ int N, V, result = 0; scanf("%d", &N); int* arr = (int*)malloc(N * sizeof(int)); for (int i = 0; i C++ 풀이 개수 세기_10807 .cpp/*** 백준 1차원 배열 10807 개수 세기* N개의 ..