이번엔 백준 알고리즘 단계별에서 2단계 조건문을 풀어볼 것이다!
시작에 앞서 각설인데 나는 if문을 좀.. 좋아한다
평소에도 '만약에~'라는 말로 시작해서
상상의 나래를 펼치고 주변인과 대화를 하는 것을 좋아해서 그런지
if문도 조건을 들면서 만약에 ~ 가 true라면? false라면?
이런 식으로 돌아가는게 재밌다ㅋㅎ
이번 시간부터는
using namespace std;
를 사용 해서 cout,cin, endl를 더 간편하게 사용할 것이다!
조건문 중 하나
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와 다름
#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
==
#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
다중 조건이 필요할 경우엔
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
#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
#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
타이머는 엊그제.. 회사 작업 중에도 코드를 짜봤었는데
너무 복잡하게 생각 할 것 없이
총 분값을 얻어서 계산하면 쉽다
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
조건 마다 계산해서 출력하는 것도 나쁘지않지만
나는 임의로 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;
}