# 1053 : [๊ธฐ์ด-๋ ผ๋ฆฌ์ฐ์ฐ] ์ฐธ ๊ฑฐ์ง ๋ฐ๊พธ๊ธฐ
๋ฌธ์ ์ค๋ช
1(true, ์ฐธ) ๋๋ 0(false, ๊ฑฐ์ง) ์ด ์
๋ ฅ๋์์ ๋ ๋ฐ๋๋ก ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํด ๋ณด์.
์ฐธ๊ณ
C์ธ์ด์์ ๋น๊ต/๊ด๊ณ ์ฐ์ฐ(==,!=, >, <, >=, <=)์ด ์ํ๋ ๋,
0์ ๊ฑฐ์ง(false)์ผ๋ก ์ธ์๋๊ณ , 0์ด ์๋ ๋ชจ๋ ์๋ ์ฐธ(true)์ผ๋ก ์ธ์๋๋ค.
์ฐธ ๋๋ ๊ฑฐ์ง์ ๋
ผ๋ฆฌ๊ฐ์ ์ญ(๋ฐ๋)์ผ๋ก ๋ฐ๊พธ๊ธฐ ์ํด์๋
๋
ผ๋ฆฌ(logical) ์ฐ์ฐ์! ๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
์ด๋ฌํ ๋
ผ๋ฆฌ์ฐ์ฐ์ NOT ์ฐ์ฐ์ด๋ผ๊ณ ๋ ๋ถ๋ฅด๊ณ ,
ํ๋ผ์(๊ธฐํธ ์ค๋ฅธ์ชฝ์ ๋ฐ์ดํ)์ด๋ ๋ฐ(๊ธฐํธ ์์ ๊ฐ๋ก ๋ง๋)๋ก ํ์ํ๊ณ ,
์งํฉ ๊ธฐํธ๋ก๋ c (์ฌ์งํฉ, complement)๋ฅผ ์๋ฏธํ๋ค. ๋ชจ๋ ๊ฐ์ ์๋ฏธ์ด๋ค.
์ฐธ, ๊ฑฐ์ง์ ๋
ผ๋ฆฌ๊ฐ(boolean value)์ธ ๋ถ ๊ฐ์ ๋ค๋ฃจ์ด์ฃผ๋ ๋
ผ๋ฆฌ์ฐ์ฐ์๋
!(not), &&(and), ||(or) ์ด ์๋ค.
** ๋ถ ๋์(boolean algebra)๋ ์ํ์ ๋ถ์ด ๋ง๋ค์ด๋ธ ๊ฒ์ผ๋ก
์ฐธ/๊ฑฐ์ง๋ง ๊ฐ์ง๋ ๋
ผ๋ฆฌ๊ฐ๊ณผ ๊ทธ ์ฐ์ฐ์ ๋ค๋ฃฌ๋ค.
์์
printf("%d", !0); //๊ฑฐ์ง์ ๋ฐ๋, ์ฆ ์ฐธ์ธ 1๋ก ๊ณ์ฐ๋จ
printf("%d", !1); //์ฐธ์ ๋ฐ๋, ์ฆ ๊ฑฐ์ง์ธ 0์ผ๋ก ๊ณ์ฐ๋จ
printf("%d", !999); //์ฐธ์ ๋ฐ๋, ์ฆ ๊ฑฐ์ง์ธ 0์ผ๋ก ๊ณ์ฐ๋จ
์ด๋ค ๋ณ์ a์,! a์ ๊ฐ์ ๋
ผ๋ฆฌ ์ฐ์ฐ์ด ๊ฐ๋ฅํ๋ค.
์ ๋ ฅ
์ ์ 1๊ฐ๊ฐ ์ ๋ ฅ๋๋ค.(๋จ, 0 ๋๋ 1 ๋ง ์ ๋ ฅ๋๋ค.)
์ถ๋ ฅ
์ ๋ ฅ๋ ๊ฐ์ด 0์ด๋ฉด 1, 1์ด๋ฉด 0์ ์ถ๋ ฅํ๋ค.
์ ๋ ฅ ์์
1
์ถ๋ ฅ ์์
0
๋ฌธ์ ํ์ด
#include <stdio.h>
int main(){
int n;
scanf("%d",&n);
printf("%d",!n);
return 0;
}
#1054 : [๊ธฐ์ด-๋ ผ๋ฆฌ์ฐ์ฐ] ๋ ๋ค ์ฐธ์ผ ๊ฒฝ์ฐ๋ง ์ฐธ ์ถ๋ ฅํ๊ธฐ
๋ฌธ์ ์ค๋ช
๋ ๊ฐ์ ์ฐธ(1) ๋๋ ๊ฑฐ์ง(0)์ด ์
๋ ฅ๋ ๋, ๋ชจ๋ ์ฐธ์ผ ๋์๋ง ์ฐธ์ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํด ๋ณด์.
์ฐธ๊ณ
๋
ผ๋ฆฌ์ฐ์ฐ์ && ๋ ์ฃผ์ด์ง 2๊ฐ์ ๋
ผ๋ฆฌ๊ฐ์ด ๋ชจ๋ ์ฐธ(1) ์ผ ๋์๋ง 1(์ฐธ)๋ก ๊ณ์ฐํ๊ณ ,
๊ทธ ์ธ์ ๊ฒฝ์ฐ์๋ 0(๊ฑฐ์ง)์ผ๋ก ๊ณ์ฐํ๋ค.
์ด๋ฌํ ๋
ผ๋ฆฌ์ฐ์ฐ์ AND ์ฐ์ฐ์ด๋ผ๊ณ ๋ ๋ถ๋ฅด๊ณ , · ์ผ๋ก ํ์ํ๊ฑฐ๋ ์๋ตํ๋ฉฐ,
์งํฉ ๊ธฐํธ๋ก๋ ∩(๊ต์งํฉ, intersection)์ ์๋ฏธํ๋ค. ๋ชจ๋ ๊ฐ์ ์๋ฏธ์ด๋ค.
์์
printf("%d", 1&&1); //๋ ๋ค ์ฐธ์ ์๋ฏธํ๋ฏ๋ก 1๋ก ๊ณ์ฐ๋์ด ์ถ๋ ฅ๋๋ค.
์ ๋ ฅ
1 ๋๋ 0์ ๊ฐ๋ง ๊ฐ์ง๋ 2๊ฐ์ ์ ์๊ฐ ๊ณต๋ฐฑ์ ๋๊ณ ์ ๋ ฅ๋๋ค.
์ถ๋ ฅ
๋ ๋ค ์ฐธ(1) ์ผ ๊ฒฝ์ฐ์๋ง 1์ ์ถ๋ ฅํ๊ณ , ๊ทธ ์ธ์ ๊ฒฝ์ฐ์๋ 0์ ์ถ๋ ฅํ๋ค.
์ ๋ ฅ ์์
1 1
์ถ๋ ฅ ์์
1
๋ฌธ์ ํ์ด
#include <stdio.h>
int main(){
int a, b;
scanf("%d %d",&a,&b);
printf("%d",a && b == 1);
return 0;
}
#1055 : [๊ธฐ์ด-๋ ผ๋ฆฌ์ฐ์ฐ] ํ๋๋ผ๋ ์ฐธ์ด๋ฉด ์ฐธ ์ถ๋ ฅํ๊ธฐ
๋ฌธ์ ์ค๋ช
๋ ๊ฐ์ ์ฐธ(1) ๋๋ ๊ฑฐ์ง(0)์ด ์
๋ ฅ๋ ๋, ํ๋๋ผ๋ ์ฐธ์ด๋ฉด ์ฐธ์ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํด ๋ณด์.
์ฐธ๊ณ
๋
ผ๋ฆฌ์ฐ์ฐ์ || ๋ ์ฃผ์ด์ง 2๊ฐ์ ๋
ผ๋ฆฌ๊ฐ ์ค์ ํ๋๋ผ๋ ์ฐธ(1) ์ด๋ฉด 1(์ฐธ)๋ก ๊ณ์ฐํ๊ณ ,
๊ทธ ์ธ์ ๊ฒฝ์ฐ์๋ 0(๊ฑฐ์ง)์ผ๋ก ๊ณ์ฐํ๋ค.
** | ๊ธฐํธ๋ ์ฌํํธ๋ฅผ ๋๋ฅธ ์ํ์์ ๋ฐฑ์ฌ๋์(\)๋ฅผ ๋๋ฅด๋ฉด ๋์ค๋ ๊ธฐํธ๋ก,
๋ฒํฐ์ปฌ ๋ฐ(vertical bar) ๊ธฐํธ์ด๋ค.
์ด๋ฌํ ๋
ผ๋ฆฌ์ฐ์ฐ์ OR ์ฐ์ฐ์ด๋ผ๊ณ ๋ ๋ถ๋ฅด๊ณ ,
+ ๋ก ํ์ํ๋ฉฐ, ์งํฉ ๊ธฐํธ๋ก๋ ∪(ํฉ์งํฉ, union)์ ์ฌ์ฉํ๋ค. ๋ชจ๋ ๊ฐ์ ์๋ฏธ์ด๋ค.
์์
printf("%d", 0||0); //๋ ๋ค ๊ฑฐ์ง์ ์๋ฏธํ๋ฏ๋ก 0์ด ๊ณ์ฐ๋์ด ์ถ๋ ฅ๋๋ค.
์ ๋ ฅ
1 ๋๋ 0์ ๊ฐ๋ง ๊ฐ์ง๋ 2๊ฐ์ ์ ์๊ฐ ๊ณต๋ฐฑ์ ๋๊ณ ์ ๋ ฅ๋๋ค.
์ถ๋ ฅ
ํ๋๋ผ๋ ์ฐธ์ผ ๊ฒฝ์ฐ 1์ ์ถ๋ ฅํ๊ณ , ๊ทธ ์ธ์ ๊ฒฝ์ฐ์๋ 0์ ์ถ๋ ฅํ๋ค.
์ ๋ ฅ ์์
1 1
์ถ๋ ฅ ์์
1
๋ฌธ์ ํ์ด
#include <stdio.h>
int main(){
int a, b;
scanf("%d %d",&a,&b);
printf("%d",a||b);
return 0;
}
#1056 : [๊ธฐ์ด-๋ ผ๋ฆฌ์ฐ์ฐ] ์ฐธ/๊ฑฐ์ง์ด ์๋ก ๋ค๋ฅผ ๋์๋ง ์ฐธ ์ถ๋ ฅํ๊ธฐ
๋ฌธ์ ์ค๋ช
๋ ๊ฐ์ง์ ์ฐธ(1) ๋๋ ๊ฑฐ์ง(0)์ด ์
๋ ฅ๋ ๋, ์ฐธ/๊ฑฐ์ง์ด ์๋ก ๋ค๋ฅผ ๋์๋ง ์ฐธ์ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํด ๋ณด์.
์ฐธ๊ณ
์ด๋ฌํ ๋
ผ๋ฆฌ์ฐ์ฐ์ XOR(exclusive or, ๋ฐฐํ์ ๋
ผ๋ฆฌํฉ) ์ฐ์ฐ์ด๋ผ๊ณ ๋ ๋ถ๋ฅธ๋ค.
์งํฉ์ ์๋ฏธ๋ก๋ ํฉ์งํฉ์์ ๊ต์งํฉ์ ๋บ ๊ฒ์ ์๋ฏธํ๋ค. ๋ชจ๋ ๊ฐ์ ์๋ฏธ์ด๋ค.
๋
ผ๋ฆฌ์ฐ์ฐ์๋ ์ฌ์น์ฐ์ฐ์์ ๋ง์ฐฌ๊ฐ์ง๋ก ์ฌ๋ฌ ๋ฒ ์ค๋ณตํด์ ์ฌ์ฉํ ์ ์๋๋ฐ,
์ฐ์ฐ์ ์์๋ฅผ ๋ง๋ค์ด์ฃผ๊ธฐ ์ํด ๊ดํธ ( )๋ฅผ ์ฌ์ฉํด ๋ฌถ์ด ์ฃผ๋ฉด ๋๋ค.
์ํ์์๋ ๊ดํธ, ์ค๊ดํธ, ๋๊ดํธ๋ฅผ ์ฌ์ฉํ์ง๋ง C์ธ์ด์์๋ ์๊ดํธ ( )๋ง์ ์ฌ์ฉํ๋ค.
์์
printf(“%d”, (a&&!b)||(!a&&b)); //์ฐธ/๊ฑฐ์ง์ด ์๋ก ๋ค๋ฅผ ๋์๋ง 1๋ก ๊ณ์ฐ
xor ์ด๋?
๋ ์ค์ ํ๋๋ง 1์ผ ๋ 1์ด๋ผ๋ ๊ฑฐ์์
(1,0)=1
(0,1)=1
ํ์ง๋ง ๋ ๊ฐ๊ฐ ๊ฐ์ผ๋ฉด 0์ด ๋์ฃ
(0,0)=0
(1,1)=0
์์์ผ๋ก ๋ฐ์ง๋ฉด a!=b ๋๋ a^b ๊ฐ ๋๊ฒ ์ง์
a) != ๋ ๊ทธ๋ฅ ๋ ๊ฐ๊ฐ ๊ฐ์ง ์๋ค๋ ๋ป์ด์์(๋ ๊ฐ๊ฐ ๊ฐ์ง ์์ผ๋ฉด ์ฐธ์ด๋ 1์ด ์ถ๋ ฅ ์๋๋ฉด ๊ฑฐ์ง์ด๋ 0์ด ์ถ๋ ฅ๋๊ฒ ์ง์?)
b) ^๋ ๊ทธ๋ฅ +,-,*,/,%์ ๊ฐ์ด ์ฐ์ฐ์์์ xor์ ๋ํ๋ด๋ ๊ธฐํธ
์ ๋ ฅ
1 ๋๋ 0์ ๊ฐ๋ง ๊ฐ์ง๋ 2๊ฐ์ ์ ์๊ฐ ๊ณต๋ฐฑ์ ๋๊ณ ์ ๋ ฅ๋๋ค.
์ถ๋ ฅ
์ฐธ/๊ฑฐ์ง์ด ์๋ก ๋ค๋ฅผ ๋์๋ง 1์ ์ถ๋ ฅํ๊ณ , ๊ทธ ์ธ์ ๊ฒฝ์ฐ์๋ 0์ ์ถ๋ ฅํ๋ค.
์ ๋ ฅ ์์
1 1
์ถ๋ ฅ ์์
0
๋ฌธ์ ํ์ด
#include <stdio.h>
int main(){
int a, b;
scanf("%d %d",&a,&b);
printf("%d",a^b);
return 0;
}
#1057 : [๊ธฐ์ด-๋ ผ๋ฆฌ์ฐ์ฐ] ์ฐธ/๊ฑฐ์ง์ด ์๋ก ๊ฐ์ ๋์๋ง ์ฐธ ์ถ๋ ฅํ๊ธฐ
๋ฌธ์ ์ค๋ช
๋ ๊ฐ์ ์ฐธ(1) ๋๋ ๊ฑฐ์ง(0)์ด ์
๋ ฅ๋ ๋,
์ฐธ/๊ฑฐ์ง์ด ์๋ก ๊ฐ์ ๋์๋ง ์ฐธ์ด ๊ณ์ฐ๋๋ ํ๋ก๊ทธ๋จ์ ์์ฑํด ๋ณด์.
์ ๋ ฅ
1 ๋๋ 0์ ๊ฐ๋ง ๊ฐ์ง๋ 2๊ฐ์ ์ ์๊ฐ ๊ณต๋ฐฑ์ ๋๊ณ ์ ๋ ฅ๋๋ค.
์ถ๋ ฅ
์ฐธ/๊ฑฐ์ง์ด ์๋ก ๋ค๋ฅผ ๋์๋ง 1์ ์ถ๋ ฅํ๊ณ , ๊ทธ ์ธ์ ๊ฒฝ์ฐ์๋ 0์ ์ถ๋ ฅํ๋ค.
์ ๋ ฅ ์์
0 0
์ถ๋ ฅ ์์
1
๋ฌธ์ ํ์ด
#include <stdio.h>
int main(){
int a, b;
scanf("%d %d",&a,&b);
printf("%d",(!a&&!b)||(a&&b));
return 0;
}
#1058 : [๊ธฐ์ด-๋ ผ๋ฆฌ์ฐ์ฐ] ๋ ๋ค ๊ฑฐ์ง์ผ ๊ฒฝ์ฐ๋ง ์ฐธ ์ถ๋ ฅํ๊ธฐ
๋ฌธ์ ์ค๋ช
๋ ๊ฐ์ ์ฐธ(1) ๋๋ ๊ฑฐ์ง(0)์ด ์ ๋ ฅ๋ ๋, ๋ชจ๋ ๊ฑฐ์ง์ผ ๋์๋ง ์ฐธ์ด ๊ณ์ฐ๋๋ ํ๋ก๊ทธ๋จ์ ์์ฑํด ๋ณด์.
์ ๋ ฅ
1 ๋๋ 0์ ๊ฐ๋ง ๊ฐ์ง๋ 2๊ฐ์ ์ ์๊ฐ ๊ณต๋ฐฑ์ ๋๊ณ ์ ๋ ฅ๋๋ค.
์ถ๋ ฅ
๋ ๋ค ๊ฑฐ์ง์ผ ๊ฒฝ์ฐ์๋ง 1์ ์ถ๋ ฅํ๊ณ , ๊ทธ ์ธ์ ๊ฒฝ์ฐ์๋ 0์ ์ถ๋ ฅํ๋ค.
์ ๋ ฅ ์์
0 1
์ถ๋ ฅ ์์
0
๋ฌธ์ ํ์ด
#include <stdio.h>
int main(){
int a, b;
scanf("%d %d",&a,&b);
printf("%d",!a&&!b);
return 0;
}