백준 #27 [C++] 10871. X보다 작은 수, 배열의 선언과 초기화
❔문제: 백준10871
정수 N개로 이루어진 수열 A와 정수 X가 주어진다. 이때, A에서 X보다 작은 수를 모두 출력하는 프로그램을 작성하시오.
➡️입력
첫째 줄에 N과 X가 주어진다. (1 ≤ N, X ≤ 10,000)
둘째 줄에 수열 A를 이루는 정수 N개가 주어진다. 주어지는 정수는 모두 1보다 크거나 같고, 10,000보다 작거나 같은 정수이다.
⬅️출력
X보다 작은 수를 입력받은 순서대로 공백으로 구분해 출력한다. X보다 작은 수는 적어도 하나 존재한다.
예제 입력 1
10 5
1 10 4 9 2 3 8 5 7 6
예제 출력 1
1 4 2 3
풀이
C 코드
1번째 제출(컴파일 에러)
#include <stdio.h>
int main() {
int N, X;
scanf("%d X", &N, &X);
for (int i=0; i<N; i++)
scanf("%d ", &A[i]);
for (int i=0; i<N; i++){
if A[i]<X
printf("%d ", A[i]);
}
return 0;
}
- scanf문에서 무슨 생각으로 "%d X"라 쓴 거지;;
잠이 덜 깼나 오늘 아침 이런 실수들 유난히 많다ㅋㅋㅠㅠㅠ
- 글구 A배열은 선언도 안 한 채 사용하려다 여기서도 에러
- if문 조건 () 반드시 쳐줘야 되는구나..
C 배울 때도 살짝 헷갈렸던 기억이 있는데 이번에 제대로 기억하고 가자
2번째 제출(컴파일 에러)
#include <stdio.h>
int main() {
int N, X, A[];
scanf("%d %d", &N, &X);
for (int i=0; i<N; i++)
scanf("%d ", &A[i]);
for (int i=0; i<N; i++){
if(A[i]<X)
printf("%d ", A[i]);
}
return 0;
}
위에서 에러난 건 다 고쳐줬다 생각했는데
배열 선언에서 A 사이즈를 지정해주지 않아 또 컴파일 에러🥲
배열 선언 방법 배울 때 여러 가지 방법 배웠었는데 이것도 가물가물하다.
이 기회에 강의자료 찾아서 정리해야지(밑에 정리해둠!)
3번째 제출(맞음)
#include <stdio.h>
int main() {
int N, X;
scanf("%d %d", &N, &X);
int A[N];
for (int i=0; i<N; i++)
scanf("%d ", &A[i]);
for (int i=0; i<N; i++){
if(A[i]<X)
printf("%d ", A[i]);
}
return 0;
}
정수 N값 받은 후에 배열 선언하는 걸로 살짝 수정
이제 잘 돌아간다.
배열 선언 시 꼭 크기 지정해주기!
C++ 코드
1번째 제출(컴파일 에러)
#include <iostream>
using namespace std;
int main() {
int N, X;
cin >> N >> X;
int A[N];
for (int i=0; i<N; i++)
cin >> A[i];
if (A[i]<X)
cout << A[i] << ' ';
return 0;
}
if문에서 에러~
생각 없이 기억에 의존해서 대충 짜면 이런 실수를 하게 된다....ㅎ
생각하면서 코드 짜고 변수 사용 범위 유의하자!!!
#include <iostream>
using namespace std;
int main() {
int N, X;
cin >> N >> X;
int A[N];
for (int i=0; i<N; i++)
cin >> A[i];
for(int i=0; i<N; i++){
if (A[i]<X)
cout << A[i] << ' ';
}
return 0;
}
☑️배열
배열의 선언
- 배열 역시 변수이기 때문에 반드시 사용 전 선언해줘야 함
- 배열 선언 방법: 변수 이름 뒤에 대괄호[ ]를 이용해 크기 지정
- 배열의 크기는 반드시 양의 정수
형식: 자료형 배열이름[배열크기]; ex. int s[10];
지정된 자료형과 크기를 가지는 배열이 생성됨
배열의 초기화
-
배열은 선언과 동시에 초기화(특정 값을 넣어줌)가 가능
ex. int scores[5] = {10, 20, 30, 40, 50};
-
배열을 초기화하려면 값들을 콤마로 분리해 중괄호{ }로 감싼 후,
배열을 선언할 때 값을 대입해주기
ex. int scores[5] = {10, 20, 30};
-> 값을 생략한 부분은 자료형의 기본값으로 초기화됨!
(여기선 배열의 자료형이 int이므로 int의 기본값 0으로 배열의 4,5번째 값이 초기화)
-
배열의 크기가 주어지지 않으면 자동으로 초기값 개수만큼이 배열 크기로 잡힘. 배열을 초기화하는 가장 일반적인 방법
ex. int scores[] = {10, 20, 30, 40, 50};
-> 배열 scores의 크기는 5
-
초기값이 주어지지 않으면 일반 변수와 마찬가지로 아무 의미 없는 쓰레기값(garbage)이 들어감
ex. int scores[5];
-> 이렇게 배열을 선언만 하면 각 요소에 쓰레기값이 저장됨
배열 초기화 시 주의사항
-
초기화 시 중간 요소의 값이 생략되면 오류 발생
❌ int engScore[5] = {90, 100, , 85, 70};
⭕ int engScore[5] = {90, 100, 80 , 85, 70};
-
배열 크기 지정하지 않은 경우 반드시 초기화시켜야 함‼️
❌ int engScore[];
⭕ int engScore[] = {●●●};
-
중괄호를 이용해 배열에 값을 저장하는 건 초기화 시에만 가능
❌ int engScore[5]; engScore[5] = {90, 100, 80, 85, 70};
⭕ engScore[5] = {90, 100, 80, 85, 70};
즉, 초기화는 배열 선언과 동시에 해줘야!
Author And Source
이 문제에 관하여(백준 #27 [C++] 10871. X보다 작은 수, 배열의 선언과 초기화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@jykchoi/백준-27-C-10871.-X보다-작은-수-배열-선언-for문-if문
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
#include <stdio.h>
int main() {
int N, X;
scanf("%d X", &N, &X);
for (int i=0; i<N; i++)
scanf("%d ", &A[i]);
for (int i=0; i<N; i++){
if A[i]<X
printf("%d ", A[i]);
}
return 0;
}
- scanf문에서 무슨 생각으로 "%d X"라 쓴 거지;;
잠이 덜 깼나 오늘 아침 이런 실수들 유난히 많다ㅋㅋㅠㅠㅠ - 글구 A배열은 선언도 안 한 채 사용하려다 여기서도 에러
- if문 조건 () 반드시 쳐줘야 되는구나..
C 배울 때도 살짝 헷갈렸던 기억이 있는데 이번에 제대로 기억하고 가자
#include <stdio.h>
int main() {
int N, X, A[];
scanf("%d %d", &N, &X);
for (int i=0; i<N; i++)
scanf("%d ", &A[i]);
for (int i=0; i<N; i++){
if(A[i]<X)
printf("%d ", A[i]);
}
return 0;
}
위에서 에러난 건 다 고쳐줬다 생각했는데
배열 선언에서 A 사이즈를 지정해주지 않아 또 컴파일 에러🥲
배열 선언 방법 배울 때 여러 가지 방법 배웠었는데 이것도 가물가물하다.
이 기회에 강의자료 찾아서 정리해야지(밑에 정리해둠!)
#include <stdio.h>
int main() {
int N, X;
scanf("%d %d", &N, &X);
int A[N];
for (int i=0; i<N; i++)
scanf("%d ", &A[i]);
for (int i=0; i<N; i++){
if(A[i]<X)
printf("%d ", A[i]);
}
return 0;
}
정수 N값 받은 후에 배열 선언하는 걸로 살짝 수정
이제 잘 돌아간다.
배열 선언 시 꼭 크기 지정해주기!
#include <iostream>
using namespace std;
int main() {
int N, X;
cin >> N >> X;
int A[N];
for (int i=0; i<N; i++)
cin >> A[i];
if (A[i]<X)
cout << A[i] << ' ';
return 0;
}
if문에서 에러~
생각 없이 기억에 의존해서 대충 짜면 이런 실수를 하게 된다....ㅎ
생각하면서 코드 짜고 변수 사용 범위 유의하자!!!
#include <iostream>
using namespace std;
int main() {
int N, X;
cin >> N >> X;
int A[N];
for (int i=0; i<N; i++)
cin >> A[i];
for(int i=0; i<N; i++){
if (A[i]<X)
cout << A[i] << ' ';
}
return 0;
}
배열의 선언
- 배열 역시 변수이기 때문에 반드시 사용 전 선언해줘야 함
- 배열 선언 방법: 변수 이름 뒤에 대괄호[ ]를 이용해 크기 지정
- 배열의 크기는 반드시 양의 정수
형식: 자료형 배열이름[배열크기]; ex.int s[10];
지정된 자료형과 크기를 가지는 배열이 생성됨
배열의 초기화
-
배열은 선언과 동시에 초기화(특정 값을 넣어줌)가 가능
ex.int scores[5] = {10, 20, 30, 40, 50};
-
배열을 초기화하려면 값들을 콤마로 분리해 중괄호{ }로 감싼 후,
배열을 선언할 때 값을 대입해주기
ex.int scores[5] = {10, 20, 30};
-> 값을 생략한 부분은 자료형의 기본값으로 초기화됨!
(여기선 배열의 자료형이 int이므로 int의 기본값 0으로 배열의 4,5번째 값이 초기화) -
배열의 크기가 주어지지 않으면 자동으로 초기값 개수만큼이 배열 크기로 잡힘. 배열을 초기화하는 가장 일반적인 방법
ex.int scores[] = {10, 20, 30, 40, 50};
-> 배열 scores의 크기는 5 -
초기값이 주어지지 않으면 일반 변수와 마찬가지로 아무 의미 없는 쓰레기값(garbage)이 들어감
ex.int scores[5];
-> 이렇게 배열을 선언만 하면 각 요소에 쓰레기값이 저장됨
배열 초기화 시 주의사항
-
초기화 시 중간 요소의 값이 생략되면 오류 발생
❌int engScore[5] = {90, 100, , 85, 70};
⭕int engScore[5] = {90, 100, 80 , 85, 70};
-
배열 크기 지정하지 않은 경우 반드시 초기화시켜야 함‼️
❌int engScore[];
⭕int engScore[] = {●●●};
-
중괄호를 이용해 배열에 값을 저장하는 건 초기화 시에만 가능
❌int engScore[5]; engScore[5] = {90, 100, 80, 85, 70};
⭕engScore[5] = {90, 100, 80, 85, 70};
즉, 초기화는 배열 선언과 동시에 해줘야!
Author And Source
이 문제에 관하여(백준 #27 [C++] 10871. X보다 작은 수, 배열의 선언과 초기화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jykchoi/백준-27-C-10871.-X보다-작은-수-배열-선언-for문-if문저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)