코딩테스트/C++

C++ Codeup 기초100제-1

SK_MOUSE 2020. 8. 4. 17:44
반응형

1008 출력하기

 

#include <iostream>
#include <stdlib.h>

using namespace std;

int main() {
	
	
	cout << "\u250C\u252C\u2510\n";
	cout << "\u251C\u253C\u2524\n";
	cout << "\u2514\u2534\u2518\n";

}

유니코드를 출력할때, cout 함수를 사용해서 입력해도 printf 함수와 동일하게 출력가능하다.

 

 

1011 문자 1개 입력받아 출력하기

#include <iostream>

using namespace std;
int main() {
	char x;
	cin >> x;
	cout << x;

	return 0;
}

C++에서도! scanf와 printf 도 적절하게 활용하는 것이 좋다.

 

 

1019 연월일 입력받아 그대로 출력하기

#include <iostream>
#include <cstring>
using namespace std;

int main() {
	int a, b, c;

	scanf("%d.%d.%d", &a, &b, &c);
	
	printf("%04d.%02d.%02d", a, b, c);

	return 0;

}

지정된 형식대로 출력하기위해서는 scanf와 printf가 좋다(소숫점자리수 지정 출력 등)

 

 

1020 주민번호 입력받아 형태바꿔 출력하기

#include <iostream>

int main() {
	int front, back;

	scanf("%d-%d", &front, &back);

	printf("%06d%07d", front, back);
}

마찬가지 방법으로 출력 및 입력을 printf와 scanf 형식을 사용하는것이 의외로 쓸만하다.

 

1021 단어한개 입력받아 그대로 출력하기

#include <iostream>

using namespace std;

int main() {
	char data[51] = "";
	cin >> data;

	cout << data;
	

	return 0;
}

단어 형태는 배열을 사용하여 입력하고, printf 에서 %s를 사용하여 출력 혹은 cout으로 출력한다.

 

 

1022 문장 입출력

#include <iostream>

using namespace std;

int main() {
	char data[2001];
	fgets(data, 2000, stdin);


	cout << data;
}

fgets(저장받을 배열인자, 저장할 최대 문자수, stdin);

 

#include <iostream>

using namespace std;

int main() {
	char data[2001];
	
	cin.getline(data, 2000);
	
	//fgets(data, 2000, stdin);


	cout << data;
}

std::istream::getline - cin.getline(저장받을 배열인자, 저장할 최대 문자수);

 

=> 공백을 포함한 문자열을 받는 방식이다.

속도 : fgets함수 > getline함수

 

 

1024 단어1개 입력받아 문자 나누어서 출력하기

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>

using namespace std;

int main() {
	char d[30];
	scanf("%s", d);
	int i = 0;
	for (int i = 0; d[i] != '\0'; i++) {

		cout << "'" << d[i] << "'" << endl;
	}

공백문자 '\0'를 이용하여 공백이 나올때까지 배열을 한글자씩 나누어서 출력한다.

 

 

1046 정수3개를 입력받아 평균 구하기

#include <iostream>

using namespace std;

int main()
{
  int a,b,c;

  scanf("%d %d %d" , &a, &b, &c);

  cout<< a+b+c <<endl;

  printf("%.1f", (float)(a+b+c)/3);
}

평균값 계산을 할 시에, (float)형으로 형변환 혹은 3.0으로 나누는 등의 변환이 필요하다.

 

 

1048 시프트연산 2의거듭제곱 배로 출력하기

#include <iostream>
#include <stdlib.h>
#include <stdio.h>
using namespace std;

int main()
{
  int a,b;

  scanf("%d %d", &a , &b);

  printf("%d", a << b);
}

a<<3은  a*2^3과 같다.

이를 이용하여 2^n 거듭제곱을 곱해줄수있다.

 

 

1071 0이 될때까지 무한출력하기(goto 사용)

#include <iostream>

using namespace std;

int main()
{
    int n;

    work:
        cin>>n;
        if(n==0){

        }
        else{
            cout<<n<<endl;
            goto work;
        }

}

goto 레이블: 을 이용하면 반복되는 부분을 여러개 자유롭게 사용가능하다.

단순한 코드 사용으로만 이용하자.

 

1079 원하는 문자가 입력될 때까지 반복 출력하기

#include <iostream>

using namespace std;

int main()
{
    char c;

    while(c!='q'){
        cin >> c;

        cout << c <<endl;
    }
}

반복문을 이용하여 입력받은 문자가 해당 문자인지 확인하여 loop를 돌린다.

반응형

'코딩테스트 > C++' 카테고리의 다른 글

[C++] 재귀 "우박수 길이(3n+1)"  (0) 2020.09.16