백준 10871번 X보다 작은 수 (C++)

REASON·2022년 8월 17일
0

백준

목록 보기
2/7

문제

정수 N개로 이루어진 수열 A와 정수 X가 주어진다. 이때, A에서 X보다 작은 수를 모두 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 N과 X가 주어진다. (1 ≤ N, X ≤ 10,000)

둘째 줄에 수열 A를 이루는 정수 N개가 주어진다. 주어지는 정수는 모두 1보다 크거나 같고, 10,000보다 작거나 같은 정수이다.

출력

X보다 작은 수를 입력받은 순서대로 공백으로 구분해 출력한다. X보다 작은 수는 적어도 하나 존재한다.


풀어보기

처음 이 문제를 봤을 때 "수열" 이라는 말에 꽂혀서 배열로 만들면 되겠구나! 하고 배열로 풀었었는데 다른 사람의 풀이를 찾아보니 배열로 풀 필요가 없는 문제였다는 것을 알았다.

#include <bits/stdc++.h>
using namespace std;
int n, x;
int a[10001];

int main(void){
	std::ios::sync_with_stdio(0);
	std::cin.tie(0);
	
	cin >> n >> x;
	
	for(int i = 0; i < n; i++){
		cin >> a[i];
	}
	
	for(int i = 0; i < n; i++){
		if(a[i] < x){
			cout << a[i] << " ";
		}
	}

}

우선 내가 짠 C++ 코드는 위와 같다.
얼마전에 c로도 풀었었는데 c로 풀은 코드는 다음과 같다.

int main()
{
    int n,  x;
    scanf("%d %d", &n, &x);

    int* a = malloc(sizeof(int) * n);
    for (int i = 0; i < n; i++) {
        int y;
        scanf("%d", &y);
        a[i] = y;
    }

    for (int i = 0; i < n; i++) {
        if (x > a[i]) {
            printf("%d ", a[i]);
        }
    }

    free(a);

    return 0;
}

알고리즘 막 입문한채로 풀어본 문제라 사실 잘 짠 코드는 아닌게 확실하지만 ㅋㅋㅋ
알고리즘 문제 풀려고 혼자 c언어 독학한다고 조금씩 문법 공부 했었는데 c언어는 너무 어렵고.. 헷갈렸다. 개인적으로 c보단 c++이 조금 더 잘 맞는 것 같아서 c++ 문법을 공부해야겠다. 앞으로 알고리즘은 c++로 풀어보려한다. 화이팅,,


알고리즘 문제 링크
백준 10871번 X보다 작은 수

0개의 댓글