BOJ | 9498번

송치헌·2021년 6월 26일
0
post-thumbnail

Python 풀이

A = int(input())

if A < 60: # 60점 미만이면 F
    print('F')
elif A < 70: # 70점 미만이면 D
    print('D')
elif A < 80: # 80점 미만이면C
    print('C')
elif A < 90: # 90점 미만이면 B
    print('B')
else: # 90점 이상이면 A
    print('A')

if 조건문은 위에서부터 차례로 조건을 만족하는지 확인한다. 조건이 맞다면 그 문장을 실행하고 if문을 탈출한다. 즉, 조건을 만족한 순간 그 아래에 있는 조건은 확인하지 않는다. 만약 이 문제를 높은 점수 순으로 조건을 설정하면 어떻게 될까?

A = int(input())

if A >= 90: # 90점 이상이면 A
    print('A')
elif A < 90: # 90점 미만이면 B
    print('B')
elif A < 80: # 80점 미만이면C
    print('C')
elif A < 70: # 70점 미만이면 D
    print('D')
else: # 60점 미만이면 F
    print('F')

A가 65점이면 성적이 D가 되어야 하는데 elif A < 90: # 90점 미만이면 B 이 부분에서 조건을 만족하게 되어서 'B'가 출력된다. 따라서 잘 생각해서 구현을 해야한다. 물론 정확한 범위를 정해주면 어떤 순서로 코드를 짜도 상관은 없지만 간결함은 생명!이기 때문에...ㅎㅎ

C++ 풀이

#include <iostream>

using namespace std;

int main()
{
	int A;
	cin >> A;
	if (90 <= A && A <= 100) cout << "A";
	else if (80 <= A && A <= 89) cout << "B";
	else if (70 <= A && A <= 79) cout << "C";
	else if (60 <= A && A <= 69) cout << "D";
	else cout << "F";
}

이렇게 범위를 확실히 정해주는 것도 좋은 방법이다.

profile
https://oraange.tistory.com/ 여기에도 많이 놀러와 주세요

0개의 댓글