본문 바로가기
Algorithm(알고리즘)/C언어

C++ 기본 문법 정리 (백준 풀이 모음)

by Jun_N 2020. 12. 17.

C++ 기본 문법을 정리하면서 백준에 있는 문제들을 풀고 그 풀이법을 정리해보고자 한다.

 

입출력과 사칙연산

10869번 사칙연산

#include <iostream>
using namespace std;

int main(){
    int a;
    int b;
    cin >> a >> b;
    cout << a+b <<endl;
    cout << a-b <<endl;
    cout << a*b <<endl;
    cout << a/b <<endl;
    cout << a%b <<endl;
    
    return 0;
}

 

2588 곱셈

#include <iostream>
using namespace std;

int main(){
    int A, B;
    cin >> A >> B;
    int X, Y, Z, W;
    X = A * (B%10);
    Y = A * ((B/10)%10);
    Z = A * (B/100);
    W = X+Y*10+Z*100;
    cout << X <<endl <<Y<<endl<<Z<<endl<<W<<endl;
    return 0;
}

 

if문

시험 성적

#include <iostream>
using namespace std;

int main(){
    int score;
    cin >> score;
    if(score < 60) cout << "F";
    else if(score < 70) cout << "D";
    else if(score < 80) cout << "C";
    else if(score < 90) cout << "B";
    else cout << "A";
    return 0;
}

 

알람 시계

#include <iostream>
using namespace std;
int main(void){
    int a, b;
    cin >> a >> b;
    if(b < 45){
        b += 15;
        a--;
    }
    else
        b -= 45;
    if(a < 0)
        a = 23;
    cout << a << " "<< b;
}

 

for문, while문

2739 구구단

#include <iostream>
using namespace std;

int main()
{
    int n;
    cin>>n;
    for(int i=1; i<=9; i++)
    {
        cout<<n<<" * "<<i<<" = "<<n*i<<'\n';
    }

}

 

2741 N찍기

#include <iostream>
using namespace std;

int main()
{
    int n;
    cin>>n;
    for(int i=1; i<=n; i++)
    {
        cout << i << "\n"; 
    }

}

endl로 하면 시간초과가 뜨는데 \n 을 하면 시간초과가 안뜬다. 이 점 유의하도록

1110 더하기 사이클

#include <iostream>
using namespace std;

int main()
{
    int n;
    int temp1;
    int temp2;
    int temp=-1;
    int count=0;
    cin >> n;
    temp=n;
    while (1){
      temp1=(temp%10)*10;
      temp2= ((temp%10) + (temp/10))%10;
      temp=temp1+temp2;
      count++;
      if (temp ==n){
        break;
      }
    }
    cout << count << endl;
  
}

 

1차원 배열

4344 평균은 넘겠지

#include <iostream>
using namespace std;

int main() {
	int c, n, num;
	int avg;
	int score[1000] = { 0 };
	double result;

	cin >> c;
	for (int i = 0; i < c; i++) {
		avg = 0;
		num = 0;
		cin >> n;

		for (int j = 0; j < n; j++) {
			cin >> score[j];
			avg = avg + score[j];
		}
		avg = avg / n;
		for (int j = 0; j < n; j++) {
			if (score[j] > avg)
				num++;
		}
		result = (double)num / n * 100;

		cout << fixed;
		cout.precision(3);
		cout << result << "%" << endl;
	}
}

 

함수

1065 한수

#include <iostream>
using namespace std;
bool hansoo(int a){
    if(a < 100)
        return true;
    int a1, a2, a3;
    a3 = a / 100;
    a1 = a % 10;
    a2 = a % 100 / 10;
    if(a3-a2 == a2-a1)
        return true;
    return false;
}
int main(void){
    int N, count = 0;
    cin>>N;
    for(int i =1; i <= N; i++){
        if(hansoo(i))
            count++;
        }
    cout<<count;
}