동아리/Early-알튜비튜

알튜비튜_04_조건문

대학기록 2024. 10. 28. 17:59

조건문이란?
프로그램의 흐름을 제어하기 위해 측정 조건을 평가하여, 그 결과에 따라 실행할 코드를 결정하는 구문
조건문을 사용하면 조건의 참/거짓에 따라 서로 다른 작업을 수행할 수 있다. 
 
비교 연산자와 논리 연산자에 대해서 알아보자. 

조건문에는 'if else 문' 과 'switch 문' 이 있다. 
 
먼저 if else 문에 대해서 알아보자.
 

 
 
만약 조건식이 여러개라면?
if - else if - (else) 로 쓰면된다. (else)를 쓰는 것은 자유이다. 

 
간단한 조건문의 예를 들자면, 
'값이 양수일 떄 100~90 : A, 89~80점: B 이고 나머지는 F이다.' 라고 했을 떄 조건문을 어떻게 쓸 수 있을까?
**if 안에서 조건을 연결해 줄때는 논리 연산자를 이용해야한다. 
 
내가 요즘 주로 쓰는 C언어로 답을 적어보면,
#include <stdio.h>
int main(void) {
     int score;
     scanf("%d", &score);

     if (90 <= score && score <= 100) {
          printf("A");
     }
     else if (80 <= score && score < 90) {
          printf("B");
     }
     else if (score<80) {
          printf("F");
     }
}
 
추가로 파이썬으로 나타내보면,
score = int(input("점수를 입력하시오: "))

if 90 <= score <= 100:
    print("A")
elif 80 <= score < 90:
    print("B")
elif score < 80:
    print("F")
 
 
 
이제 switch 문을 알아보자. 

 
 
 
이제 백준에서 대표적인 조건문 문제를 풀어보자.
 
 
백준 1330번

백준 1330번

 
어떤 언어로 작성하던, A와 B를 세가지 경우로 나누어서 if else 조건문으로 작성해주면 된다. 
 
C언어로 작성하면,
 
#include <stdio.h>
int main(){
     int A, B;
     scanf("%d %d", &A, &B);
     if (A > B) {
         printf(">");
     }
     else if (A < B) {
        printf("<");
     }
     else if (A == B) {
        printf("==");
     }
}
 
 
파이썬으로 작성하면,
**파이썬은 if elif 로 써야하고 뒤에 항상 ' : ' 를 붙여줘야 한다. 
 
import sys 
input = sys.stdin.readline
 
A,B=map(int,input().split())
 
if A > B:
   print(">")
elif A < B:
   print("<")
else:
   print("==")
 
 
 
백준 14681번

백준 14691번

이것도 윗문제와 마찬가지로 어떤 언어로 작성하던,  각 사분면 별로 경우로 나누어서 if else 조건문으로 작성해주면 된다. 
 
 
C언어로 작성하면,
**이떄 if 안에 조건은 '&&' 로 연결해줘야 한다. 
 
#include <stdio.h>
int main(void)
{
     int x, y;
     scanf("%d\n%d", &x, &y);

     if (x > 0 && y > 0) {
          printf("1");
     }
     else if (x < 0 && y > 0) {
          printf("2");
     }
     else if (x < 0 && y < 0) {
          printf("3");
     }
     else if (x >0 && y < 0) {
          printf("4");
     }
}
 
 
파이썬으로 작성하면,
**이떄 if 안에 조건은 'and' 로 연결해줘야 한다. 
 
import sys 
input = sys.stdin.readline
 
x = int(input())
y = int(input())
 
if x > 0 and y > 0:
   print(1)
elif x < 0 and y > 0:
   print(2)
elif x < 0 and y < 0:
   print(3)
else:
   print(4)
 
 
 
백준 9498번

백준 9498번

 
 
여기서 코드를 간단하게 하기위해서 생각해보아야 할 것이 있다.
주어진 조건에서 ~점 이하일 경우는 생각하지 않아도 된다. 만약 성적이 83점이면 자동으로 80점 이상인 조건이 참이 되므로 B가 출력이 되고, 73점인 경우에는 자동으로 C가 출력이 되기 때문이다. 
 
 
C언어로 풀면, 
 
#include <stdio.h>
int main() {
     int score;
     scanf("%d",&score);

     if (score >= 90) {
         printf("A");
     }
    else if (score >= 80) {
         printf("B");
     }
    else if (score >= 70) {
         printf("C");
     }
    else if (score >= 60) {
         printf("D");
     }
    else {
         printf("F");
     }
}
 
 
파이썬으로 풀면,
score = int(input())
 
if score >= 90:
    print('A')
elif score >= 80:
    print('B')
elif score >= 70:
    print('C')
elif score >= 60:
    print('D')
else:
    print('F')