cyphen156
백준-1차원 배열 10871 X보다 작은 수 본문
10871번: X보다 작은 수 (acmicpc.net)
N개로 이루어진 수열 A, X를 주었을 때 수열 안에서 X보다 작은 수를 모두 출력하라.
제약사항
- 0 < N, X <= 10,000
- 0 < result <= N
주의 사항
수를 입력받은 순서대로 공백을 주어 출력한다.
--> 정렬 안한다.
----> 브루트 포스 식으로 순열 전체를 순회해야한다.
C 풀이
X보다 작은 수 _10871.c
C언어로 풀 때에는 메모리 사이즈에 항상 주의하면서 풀어야 한다.
0으로 초기화한 결과 배열을 하나 복제해놓고, 수열 입력시 바로 X와 비교하여 result배열안에 집어넣음으로써 전체 순회를 한번 더 수행하지 않고, 결과배열이 0이 아닐 때까지만 순회하여 출력하게 만듦으로써 최적화 해 보았다.
/**
* 백준 1차원 배열 10871
* 정수 N개로 이루어진 수열 A와 X를 주었을 때 X보다 작은 수를 모두 출력하라.
*
* 제한사항
*****************************************
* 0 < N, X <= 10,000 *
* 0 < result <= N *
*****************************************
*
*
*
* 주의
* 수를 입력받은 순서대로 공백을 주어 출력한다
* --> 정렬 안한다.
* ----> 브루트 포스식으로 전체를 순회해야한다.
*
* 풀이시간 10분
*/
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int N, X;
scanf("%d %d", &N, &X);
if (N > 10000)
{
return-1;
}
int* arr = (int*)malloc(N * sizeof(int));
int* result = (int*)calloc(N, sizeof(int));
int T = 0;
for (int i = 0; i < N; ++i)
{
scanf("%d", &arr[i]);
if (arr[i] < X)
{
result[T] = arr[i];
++T;
}
}
for (int i = 0; result[i] != 0; ++i)
{
printf("%d ", result[i]);
}
printf("\n");
free(arr);
return 0;
}
C++ 풀이
X보다 작은 수 _10871.cpp
new delete 동적할당 연습
Vector STL사용
/**
* 백준 1차원 배열 10871
* 정수 N개로 이루어진 수열 A와 X를 주었을 때 X보다 작은 수를 모두 출력하라.
* new delete 연산을 통한 동적 할당 연습
*
* 제한사항
*****************************************
* 0 < N, X <= 10,000 *
* 0 < result <= N *
*****************************************
*
*
*
* 주의
* 수를 입력받은 순서대로 공백을 주어 출력한다
* --> 정렬 안한다.
* ----> 브루트 포스식으로 전체를 순회해야한다.
*
* 풀이시간 10분
*/
#include <iostream>
#include <vector>
using namespace std;
int main(void)
{
int N, X;
cin >> N >> X;
int* arr = new int[N];
vector<int> result;
for (int i = 0; i < N; ++i)
{
cin >> arr[i];
if (arr[i] < X)
{
result.push_back(arr[i]);
}
}
for(int i = 0; i < result.size(); ++i)
{
cout << result[i] << " ";
}
cout << endl;
delete[] arr;
return 0;
}
모든 예제 코드의 소스파일은 제 개인 깃허브 레포지토리 에 있습니다.
Workspace/알고리듬 풀이 at main · cyphen156/Workspace · GitHub
Workspace/알고리듬 풀이 at main · cyphen156/Workspace
Studying . Contribute to cyphen156/Workspace development by creating an account on GitHub.
github.com
'컴퓨터공학 > 알고리듬 풀이' 카테고리의 다른 글
백준-1차원 배열 2562 최댓값 (0) | 2024.09.10 |
---|---|
백준-1차원 배열 10818 최소, 최대 (0) | 2024.09.10 |
백준-1차원 배열-10807 개수 세기 (0) | 2024.09.09 |
백준-반복문-10951 A+B - 4 (2) | 2024.09.06 |
백준-반복문-10952 A+B - 5 (0) | 2024.09.05 |