본문 바로가기

Algorithm

[Algorithm] CodeUp 기초 100제 C++ (1065~1099: 조건, 반복실행구조, 종합, 1차원배열, 2차원배열)

반응형

1065. 정수 3개 입력받아 짝수만 출력하기

#include <iostream>
using namespace std;

int main(){
	int a, b, c;
	cin>>a>>b>>c;
	if(a%2 == 0) cout<<a<<endl;
	if(b%2 == 0) cout<<b<<endl;
	if(c%2 == 0) cout<<c<<endl;
	return 0;
}

 

1066. 정수 3개 입력받아 짝/홀 출력하기

#include <iostream>
using namespace std;

void checkEven(int n){
	if(n%2 == 0) cout<<"even"<<endl;
	else cout<<"odd"<<endl;
}

int main(){
	int a, b, c;
	cin>>a>>b>>c;
	checkEven(a);
	checkEven(b);
	checkEven(c);
	return 0;
}

 

1067. 정수 1개 입력받아 분석하기

#include <iostream>
using namespace std;

void checkEven(int n){
	if(n%2 == 0) cout<<"even"<<endl;
	else cout<<"odd"<<endl;
}

int main(){
	int n;
	cin>>n;
	if(n > 0){
		cout<<"plus"<<endl;
		checkEven(n);
	} else{
		cout<<"minus"<<endl;
		checkEven(n);
	}
	return 0;
}

 

1068. 정수 1개 입력받아 평가 출력하기

#include <iostream>
using namespace std;

int main(){
	int n;
	cin>>n;

	if(n >= 90) cout<<"A";
	else if(n >= 70) cout<<"B";
	else if(n >= 40) cout<<"C";
	else cout<<"D";

	return 0;
}

 

1069. 평가 입력받아 다르게 출력하기

#include <iostream>
using namespace std;

int main(){
	char c;
	cin>>c;

	switch(c){ //정수만 가능
	case 'A':
		cout<<"best!!!";
		break;
	case 'B':
		cout<<"good!!";
		break;
	case 'C':
		cout<<"run!";
		break;
	case 'D':
		cout<<"slowly~";
		break;
	default:
		cout<<"what?";
	}

	return 0;
}

 

1070. 월 입력받아 계절 출력하기

#include <iostream>
using namespace std;

int main(){
	int month;
	cin>>month;

	switch(month){
	case 12:
	case 1:
	case 2:
		cout<<"winter";
		break;
	case 3:
	case 4:
	case 5:
		cout<<"spring";
		break;
	case 6:
	case 7:
	case 8:
		cout<<"summer";
		break;
	default:
		cout<<"fall";
	}

	return 0;
}

 

1071. 0 입력될 때까지 무한 출력하기

#include <iostream>
using namespace std;

int main(){
	int n;
	while(cin>>n, n != 0)
		cout<<n<<endl;
	return 0;
}

 

1072. 정수 입력받아 계속 출력하기

#include <iostream>
using namespace std;

int main(){
	int n, x;
	cin>>n;

	for(int i=0; i<n; i++){
		cin>>x;
		cout<<x<<endl;
	}
	return 0;
}

 

1073. 0 입력될 때까지 무한 출력하기2

#include <iostream>
using namespace std;

int main(){
	int n;
	while(cin>>n, n != 0)
		cout<<n<<endl;
	return 0;
}

 

1074. 정수 1개 입력받아 카운트다운 출력하기

#include <iostream>
using namespace std;

int main(){
	int n;
	cin>>n;
	while(n)
		cout<<n--<<endl;
	return 0;
}

 

1075. 정수 1개 입력받아 카운트다운 출력하기2

#include <iostream>
using namespace std;

int main(){
	int n;
	cin>>n;
	while(n)
		cout<<--n<<endl;
	return 0;
}

 

1076. 문자 1개 입력받아 알파벳 출력하기

#include <iostream>
using namespace std;

int main(){
	char finish;
	cin>>finish;

	char start = 'a';
	while((int)start != (int)finish)
		cout<<start++<<endl;
	cout<<finish;

	return 0;
}

 

1077. 정수 1개 입력받아 그 수까지 출력하기

#include <iostream>
using namespace std;

int main(){
	int n;
	cin>>n;
	for(int i=0; i<=n; i++)
		cout<<i<<endl;
	return 0;
}

 

1078. 짝수 합 구하기

#include <iostream>
using namespace std;

int main(){
	int n;
	cin>>n;

	int sum = 0;
	for(int i=1; i<=n; i++)
		if(i%2 == 0) sum += i;
	cout<<sum;

	return 0;
}

 

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

#include <iostream>
using namespace std;

int main(){
	char c;

	while(1){
		cin>>c;
		cout<<c<<endl;
		if(c == 'q') break;
	}

	return 0;
}

 

1080. 언제까지 더해야 할까?

#include <iostream>
using namespace std;

int main(){
	int n;
	cin>>n;

	int sum = 0;
	int ans;
	for(int i=1; sum<n; i++){
		sum += i;
		ans = i;
	}
	cout<<ans;

	return 0;
}

 

1081. 주사위를 2개 던지면?

#include <iostream>
using namespace std;

int main(){
	int n, m;
	cin>>n>>m;

	for(int i=1; i<=n; i++){
		for(int j=1; j<=m; j++)
			cout<<i<<" "<<j<<endl;
	}

	return 0;
}

 

1082. 16진수 구구단?

#include <iostream>
using namespace std;

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

	for(int i=1; i<16; i++)
		printf("%X*%X=%X\n", n, i, n*i);

	return 0;
}

 

1083. 3 6 9 게임의 왕이 되자!

#include <iostream>
using namespace std;

int main(){
	int n;
	cin>>n;

	for(int i=1; i<=n; i++){
		if(i%3 == 0) cout<<"X ";
		else cout<<i<<" ";
	}
	
	return 0;
}

 

1084. 빛 섞어 색 만들기

#include <iostream>
using namespace std;

int main(){
	int r, g, b;
	cin>>r>>g>>b;

	for(int i=0; i<r; i++){
		for(int j=0; j<g; j++){
			for(int k=0; k<b; k++)
				cout<<i<<" "<<j<<" "<<k<<'\n'; //endl보다 \n이 빠르다.
		}
	}
	cout<<r*g*b;

	return 0;
}

 

1085. 소리 파일 저장용량 계산하기

#include <iostream>
using namespace std;

int main(){
	long long h, b, c, s;
	cin>>h>>b>>c>>s;

	cout<<fixed;
	cout.precision(1);
	cout<<(float)(h*b*c*s)/8/1024/1024<<" MB"<<endl; //bit -> byte -> KB -> MB

	return 0;
}

 

1086. 그림 파일 저장용량 계산하기

#include <iostream>
using namespace std;

int main(){
	int w, h, b;
	cin>>w>>h>>b;

	cout<<fixed;
	cout.precision(2);
	cout<<(float)(w*h*b)/8/1024/1024<<" MB"<<endl;

	return 0;
}

 

1087. 여기까지! 이제 그만~

#include <iostream>
using namespace std;

int main(){
	int n;
	cin>>n;

	int sum = 0;
	for(int i=1; i<=n; i++){
		sum += i;
		if(sum >= n){
			cout<<sum;
			break;
		}
	}
	return 0;
}

 

1088. 3의 배수는 통과?

#include <iostream>
using namespace std;

int main(){
	int n;
	cin>>n;

	for(int i=1; i<=n; i++){
		if(i%3 == 0) continue;
		cout<<i<<" ";
	}
	return 0;
}

 

1089. 수 나열하기1

#include <iostream>
using namespace std;

int main(){
	int a, d, n;
	cin>>a>>d>>n;
	cout<<a + (d * (n - 1));
	return 0;
}

 

1090. 수 나열하기2

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

int main(){
	float a, r, n;
	cin>>a>>r>>n;
	cout<<(long long)a * (long long)pow(r, n-1);
	return 0;
}

//10 10 10을 넣었을 때 에러 발생 -> pow의 인자로 넣어주는 값의 자료형과, 출력값의 자료형 주의하자
//참고) https://stackoverflow.com/questions/9704195/why-pow10-5-9-999-in-c

 

1091. 수 나열하기3

#include <iostream>
using namespace std;

int main(){
	int a, m, d, n;
	cin>>a>>m>>d>>n;

	long long cur = a;
	for(int i=1; i<n; i++)
		cur = cur * m + d;
	cout<<cur;

	return 0;
}

 

1092. 함께 문제 푸는 날

#include <iostream>
using namespace std;

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

	int day = 1;
	while(day%a != 0 || day%b != 0 || day%c != 0) day++;
	cout<<day;

	return 0;
}

 

1093. 이상한 출석 번호 부르기1

#include <iostream>
using namespace std;

int main(){
	int n;
	cin>>n;
	int call[n];
	int nums[24] = {}; //0으로 초기화

	for(int i=0; i<n; i++){
		cin>>call[i];
		nums[call[i]]++;
	}

	for(int i=1; i<24; i++) cout<<nums[i]<<" ";

	return 0;
}

 

1094. 이상한 출석 번호 부르기2

#include <iostream>
using namespace std;

int main(){
	int n;
	cin>>n;
	int call[n];

	for(int i=0; i<n; i++) cin>>call[i];
	for(int i=n-1; i>=0; i--) cout<<call[i]<<" ";

	return 0;
}

 

1095. 이상한 출석 번호 부르기3

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

int main(){
	int n;
	cin>>n;
	int call[n];

	for(int i=0; i<n; i++) cin>>call[i];
	cout<<*min_element(call, call + n);

	return 0;
}

 

1096. 바둑판에 흰 돌 놓기

#include <iostream>
using namespace std;

int arr[20][20];

int main(){
	int n;
	cin>>n;

	int x, y;
	for(int i=0; i<n; i++){
		cin>>x>>y;
		arr[x][y] = 1;
	}

	for(int i=1; i<20; i++){
		for(int j=1; j<20; j++)
			cout<<arr[i][j]<<" ";
		cout<<endl;
	}

	return 0;
}

 

1097. 바둑알 십자 뒤집기

#include <iostream>
using namespace std;

int arr[20][20];

int main(){
	for(int i=1; i<20; i++){
		for(int j=1; j<20; j++)
			cin>>arr[i][j];
	}

	int n;
	cin>>n;

	int x, y;
	for(int i=0; i<n; i++){
		cin>>x>>y;
		for(int j=1; j<20; j++) arr[x][j] = !arr[x][j];
		for(int j=1; j<20; j++) arr[j][y] = !arr[j][y];
	}

	for(int i=1; i<20; i++){
		for(int j=1; j<20; j++)
			cout<<arr[i][j]<<" ";
		cout<<endl;
	}

	return 0;
}

 

1098. 설탕과자 뽑기

#include <iostream>
using namespace std;

int main(){
	int h, w, n, l, d, x, y;
	cin>>h>>w;
	cin>>n;

	int arr[h+1][w+1] = {};
	for(int i=0; i<n; i++){
		cin>>l>>d>>x>>y;
		for(int j=1; j<=h; j++){
			for(int k=1; k<=w; k++){
				if(d){ //세로
					for(int m=0; m<l; m++)
						arr[x+m][y] = 1;
				}else{ //가로
					for(int m=0; m<l; m++)
						arr[x][y+m] = 1;
				}
			}
		}
	}

	for(int i=1; i<=h; i++){
		for(int j=1; j<=w; j++)
			cout<<arr[i][j]<<" ";
		cout<<endl;
	}

	return 0;
}

 

1099. 성실한 개미

#include <iostream>
using namespace std;

int arr[11][11];

void backtrack(int x, int y){
	if(arr[x][y] == 2){
		arr[x][y] = 9;
		return;
	}
	arr[x][y] = 9;

	if(arr[x][y+1] != 1)
		backtrack(x, y+1);
	else if(arr[x+1][y] != 1)
		backtrack(x+1, y);
}


int main(){
	for(int i=1; i<11; i++){
		for(int j=1; j<11; j++)
			cin>>arr[i][j];
	}

	backtrack(2, 2);

	for(int i=1; i<11; i++){
		for(int j=1; j<11; j++)
			cout<<arr[i][j]<<" ";
		cout<<endl;
	}

	return 0;
}
반응형