-
백준 문제풀이-단계별 문제풀이 2단계 if문(Python , 1330 , 9498, 2753,14681, 2884)문제 풀이/Baekjoon 2021. 2. 14. 17:39
If 문
python에서 if문을 사용할 때에는 아래와 같은 문법을 가집니다.
if 조건문 :
명령문
elif 다른 조건문 :
명령문
else :
명령문
python에서는 들여 쓰기를 통해 if문이 어디까지 실행될지를 결정합니다. 그리고 명령문이 참(True) 일 경우 실행되고
만약 명령문이 거짓(False) 일 경우 실행되지 않습니다.
또한, if를 사용한 이후에 처음 if문에서의 조건 외에 또 다른 조건문을 쓰기 위해서는 elif를 사용하고 c/c++에서의
else if와 같은 용도로 사용됩니다. 만약 조건문 외의 모든 경우에 대해서는 else를 사용합니다.
특히 조건문 다음에는 ' : ' 을 꼭 입력해 주셔야 합니다.
c++과 c언어에서 if문은
if (조건문) {
명령문
}
else if (조건문) {
명령문
}
else {
명령문
}
c / c++은 파이썬과 달리 ' : ' 가 아닌 { } (중괄호) 안에 명령문을 입력해줍니다.
1330번 두 수 비교하기
https://www.acmicpc.net/problem/1330 위 문제는 두 수를 A, B에 값을 넣어준 후 A가 B보다 큰 경우에는 ' > ', A가 B보다 작은 경우에는 '<'를 출력하고 마지막으로 A와 B가 같은 경우 '='를 출력하는 문제입니다.
풀이
a, b = map(int, input().split())
if a>b:
print('>')
elif a<b:
print('<')
else:
print('==')이런 식으로 풀어도 정답이라고 출력해주지만 제한 조건을 걸어주지 않았습니다.
그래서 저는 limit() 함수를 만들어서 제약을 걸어주도록 하겠습니다.
def limit(num):
if num>10000 or num<-10000:
return False
else :
return True
a, b = map(int, input().split())
if a==False:
a= int (input())
elif b==False :
b= int(input())
if a>b:
print('>')
elif a<b:
print('<')
else:
print('==')def 는 사용자 정의 함수를 만들기 위해서 사용됩니다. 만약 limit안에 들어간 숫자가 10000보다 크거나 -10000보다 작을 경우에는 해당 변수에 값을 다시 받도록 코드를 작성하였습니다.
9498번 시험 성적
https://www.acmicpc.net/problem/9498 위 문제는 if문과 elif 마지막으로 else를 사용하여 문제를 해결하는 문제입니다.
풀이
def limit(num):
if num>100 or num<0:
return False
else :
return Truescore = int (input())
if limit(score):
score = int (input())
if score==100 or score >=90:
print('A')
elif score<90 and score >=80:
print('B')
elif score <80 and score >=70:
print('C')
elif score <70 and score >=60:
print('D')
else :
print('F')2753번 윤년
https://www.acmicpc.net/problem/2753 위 문제는 어떤 언어를 배우든 조건문을 배울 때 빠지지 않고 등장하는 문제입니다. 윤년일 경우에는 1을 아니면 0을 출력하는 문제입니다. (limit 생략..ㅎㅎ)
풀이
year = int (input())
if year%4 ==0 and (year%100 !=0 or year %400==0) :
print('1')
else:
print('0')참고로 %는 나머지를 구할 때 사용이 됩니다. 윤년은 4의 배수여야 하기 때문에 4의 나머지는 0이 되어야 하며 100의 배수가 아니지만 400의 배수일 경우에는 윤년입니다.
14681번 사분면 고르기
https://www.acmicpc.net/problem/14681 위 문제는 x, y의 값을 입력받은 후 몇 사분면에 속하는지 출력하는 문제입니다.
풀이
x = int (input())
y = int (input())
if (x>0 and y>0):
print('1')
elif (x>0 and y<0):
print('4')
elif (x<0 and y>0):
print('2')
elif( x< 0 and y<0):
print('3')2884번 알람 시계
https://www.acmicpc.net/problem/2884 위 문제는 낮잠을 자는 상근이가 알람을 맞춰도 늦게 일어나기 때문에 알람을 45분 앞서 맞추겠다는 문제입니다.
만약 00 00시에 일어나야 하면 알람은 23 15가 출력이 되어야 하며 min 은 60보다 크게 출력이 되면 안 됩니다.
풀이
hour, min = map(int,input().split())
edit_min = min - 45
if edit_min <0:
hour -= 1
if hour <0:
hour+=24
min = 60 + edit_min
if min >=60:
min -=60
print(hour,min)설명
저는 우선 hour과 min 값을 입력을 받은 다음에 min에 45를 뺀 후 만약에 뺀 값이 음수이면 앞의 시간에 1을 빼주었습니다. 또한 00 00시에 45분을 빼면 음수가 되기 때문에 이러한 경우에는 24를 더해줘 23시가 되도록 처리해주었습니다.
이제 분을 교정해주기 위해 60분에서 edit_min을 더해주어 분을 설정해주는데 만약 그 값이 60을 넘길 경우 60을 다시 빼주었습니다.
이상 백준 2단계인 if문 문제를 풀어보았습니다. 만약에 풀이를 보고 이해가 안 가는 점이나 더 좋은 풀이가 있을 경우에는 댓글 부탁드립니다.
'문제 풀이 > Baekjoon' 카테고리의 다른 글