PS

[코드업] c++ 100제 (1051 - 1070)

kugnuoy 2024. 1. 31. 17:45

1053.

[풀이]

c++에는 참 거짓을 나타낼 수 있는 자료형 bool 이 있다.

다른 자료형의 값을 bool()을 통해 ture or false 로 나타낼 수 있다.

#include <bits/stdc++.h>
using namespace std;

int main(void) {
	bool a;
	cin >> a;
	cout << !a;
}

 

1059.

[풀이]

#include <bits/stdc++.h>
using namespace std;

int main(void) {
	int a;
	cin >> a;
	cout << ~a;
}

 

1060.

[풀이]

c++ 에서 cout에서 비트 연산을 하면 컴파일 에러가 나므로 비트연산을 한 결과를 cout으로 출력하자.

불편하다면 printf 를 사용하여 printf("%d", a & b); 해도 된다.

#include <bits/stdc++.h>
using namespace std;

int main(void) {
	int a, b;
 	cin >> a >> b;
	int result = a & b;
	cout << result;
}

 

1063.

[풀이]

삼항 연산자는

조건 ? true일때 : false일때

와 같은 형태로 쓰인다.

매크로를 사용해서 정의해도 좋다.

#include <bits/stdc++.h>
using namespace std;

int main(){
	int a, b;
	cin >> a >> b;
    a > b ? cout << a : cout << b;	
}
#include <bits/stdc++.h>
#define max(a,b) a>b? cout << a: cout << b;
using namespace std;

int main(){
	int a, b;
	cin >> a >> b;
	max(a,b);
}

 

1064.

[풀이]

세 가지 정수를 비교하는 삼항연산자는 더 복잡해 보이지만 원리는 같다.

#include <bits/stdc++.h>
using namespace std;

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

	(a < b && a < c) ? cout << a : ( (b < a && b < c) ? cout << b : cout << c );
}

 

1069.

[풀이]

switch, case 구문은 자주 사용하지 않지만 정확한 사용법은 익혀두어야 한다.

#include <bits/stdc++.h>
using namespace std;

int main(){
	char credit;
	cin >> credit;
	
	switch(credit) {
		case 'A' :	cout << "best!!!";
					break;
		case 'B' :	cout << "good!!";
					break;
		case 'C' :	cout << "run!";
					break;
		case 'D' :	cout << "slowly~";
					break;
		default  :	cout << "what?";
	}
}