<C++> 조건문

긍이·2023년 10월 22일
0

C++

목록 보기
3/12

이번엔 백준 알고리즘 단계별에서 2단계 조건문을 풀어볼 것이다!

시작에 앞서 각설인데 나는 if문을 좀.. 좋아한다
평소에도 '만약에~'라는 말로 시작해서
상상의 나래를 펼치고 주변인과 대화를 하는 것을 좋아해서 그런지
if문도 조건을 들면서 만약에 ~ 가 true라면? false라면?
이런 식으로 돌아가는게 재밌다ㅋㅎ

이번 시간부터는

 using namespace std;

를 사용 해서 cout,cin, endl를 더 간편하게 사용할 것이다!

📌 조건문

if문

조건문 중 하나
if() true/false를 체크해서 조건에 맞는 결과값을 얻을 수 있다
else if, else로 추가 조건을 주면서 결과값을 얻을 수도 있다

if(a) : (a) 안에 들어가는 조건이 맞다면
else if(b) : 윗 조건이 아니고 (b) 안에 들어가는 조건이 맞다면
else : (a),(b) 모두 아니라면
이런 식으로 if 문을 사용 할 수 있다

조건에는 true인지 false인지를 내놓을 수 있어야한다
ex) if(a > b)
a, b 를 비교하는 비교연산자 '>' 를 넣어줘야한다

비교연산자

a>b : a가 b 보다 큼
a<b : a가 b 보다 작음
a>=b : a가 b 보다 크거나 같음
a<=b : a가 b 보다 작거나 같음
a==b : a가 b와 같음
a!=b : a가 b와 다름

✔ 1330번 두 수 비교하기

#include <iostream>

using namespace std;

int main()
{
	int a, b;
	cin >> a >> b;
	if (a > b) cout << ">";
	else if (a < b) cout << "<";
	else cout << "==";
}

2 2
==

✔ 9498번 시험 성적

#include <iostream>

using namespace std;

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

	if (a >= 90)  cout << "A";
	else if (a >= 80) cout << "B";
	else if (a >= 70) cout << "C";
	else if (a >= 60) cout << "D";
	else cout << "F";
}

88
B

✔ 2753번 윤년

다중 조건이 필요할 경우엔
if문 안에 if 문을 사용할 수도 있지만
논리연산자를 사용하여 다중 조건을 체크할 수 있다

논리연산자

a && b : a조건과 b조건 모두 true
a || b : a,b 중 true가 있다면 true
!a : a가 false라면 true

#include <iostream>

using namespace std;

int main()
{
	int a;

	cin >> a;

	if (((a % 4 == 0) && (a % 100 != 0)) || a % 400 == 0)
	{
		cout << 1;
	}
	else
		cout << 0;

}

2023
0

✔ 14681번 사분면 고르기

#include <iostream>

using namespace std;

int main()
{
	int a, b;

	cin >> a >> b;

	if (a>0 && b>0) cout << 1;
	if (a<0 && b>0) cout << 2;
	if (a<0 && b<0) cout << 3;
	if (a>0 && b<0) cout << 4;
}

12 -3
4

✔ 2884번 알람시계

#include <iostream>

using namespace std;

int main()
{
	int h,m;

	cin >> h >> m;


	if (m - 45 < 0)
	{
		m = 60 + (m-45);
		
		if (h -1 < 0)
			h = 23;
		else h--;
	}
	else m -= 45;

	cout << h << " " << m;

}

22 45
22 0

✔ 2525번 오븐시계

타이머는 엊그제.. 회사 작업 중에도 코드를 짜봤었는데
너무 복잡하게 생각 할 것 없이
총 분값을 얻어서 계산하면 쉽다
1시간은 60분이니깐
h * 60을 해줘서 m에 더해주면 총 분을 얻을 수 있디
ex > 23시 20분 > 1400분
여기서 오븐 추가 분을 더해주면 끝났을 때 분이 나온다

입력된 값이 23 20 40 이라면 1440분이 나오는데
여기서 끝났을 때의 h를 구하려면
1440/60로 몫을 구하면 h 값이다
m은 (총 분 - h 60)에서 60을 나눴을때 나머지 값이다
(1440 - (h
60))에서 60의 나머지를 구하면 m 값이 나온다

여기서 h가 23이 넘는다면 0으로 초기화를 해줘야하니
if을 사용해서 24를 빼주면 끝

#include <iostream>

using namespace std;

int main()
{
	int h,m, om;

	cin >> h >> m >> om;
	m += h * 60;
	m += om;

	h = m / 60;
	m = (m - (h * 60)) % 60;

	if (h > 23)
	{
		h = h-24;
	}

	cout << h << " " << m;
}

23 40
20
0 0

✔ 2480번 주사위 세개

조건 마다 계산해서 출력하는 것도 나쁘지않지만
나는 임의로 p와 gold를 만들어 조건에 맞게 저장하고 계산해서
한번에 출력해줬다

#include <iostream>

using namespace std;

int main()
{
	int m1,m2, m3;

	cin >> m1 >> m2 >> m3;
	int check;
	
	int p1, p2, p3;

	if (m1 == m2 && m1 == m3)
	{
		p1 = 10000;
		p2 = m1;
		p3 = 1000;
	}
	else
	{
		p3 = 100;
		if (m1 != m2 && m1 != m3 && m2 != m3)
		{
			p1 = 0;
			if (m1 > m2) p2 = m1;
			else p2 = m2;
			if (m3 > p2) p2 = m3;
		}
		else
		{
			p1 = 1000;
			if (m1 == m2) p2 = m1;
			else if (m1 == m3) p2 = m1;
			else p2 = m2;
		}
	}
	int gold = p1+p2*p3;
	cout << gold;
}

0개의 댓글

관련 채용 정보