코드업 기초3. if ~ else (2)

Tino-Kim·2022년 1월 20일
0
post-thumbnail

🥴 코드업 기초3. if ~ else (2)

📌 조건문 if ~ else

# 1161
a,b=map(int, input().split())
if a%2==0:
    if b%2==0:
        print('짝수+짝수=짝수')
    else:
        print('짝수+홀수=홀수')
else:
    if b%2==0:
        print('홀수+짝수=홀수')
    else:
        print('홀수+홀수=짝수')
  • %와 // 연산자를 쓰는 경우
    ⭐ 자릿 수가 많은 경우에 어떤 자리의 숫자만 보고 싶은 경우에 이용한다.
    ex1. 1234에서 234를 보고싶다. > 1234%100 = 1234를 100으로 나눴을 때 나머지를 의미한다.
    ex2. 1234에서 1만 보고 싶다. > 1234//1000 = 1234를 1000으로 나눴을 때 몫을 의미한다.

  • 비교 연산자가 여러 개 나오는 경우에는 소괄호로 묶어준다.
    오류를 줄일 수 있는 방법이니 꼭 사용하기.

  • 반복문 While을 이용할 때에는 반드시 종료 조건이 있어야한다. 없으면 무한 루프가 걸린다.

# 1162
y,m,d=map(int, input().split())
standard=(y-m+d)
if standard%10==0:
    print('대박')
else:
    print('그럭저럭')

# 1163
from sys import stdin
y,m,d=map(int, stdin.readline().split())
standard=((y+m+d)%1000)//100
# (y+m+d)를 1000으로 나눈 나머지를 100으로 나눈 몫을 의미한다
# 상황에 따라 찾아야 되는 숫자가 다르기 때문에 머리를 잘 굴려서 생각해보기
if standard%2==0:
    print('대박')
else:
    print('그럭저럭')

# 1164
from sys import stdin
a,b,c=map(int, stdin.readline().split())
if (a>170)&(b>170)&(c>170):
# 비교 연산자가 여러 개 나오는 경우에는 소괄호로 묶어준다
    print('PASS')
else:
    print('CRASH')
    
# 1165
from sys import stdin
time, score=map(int, stdin.readline().split())

count=0
# 반복문 While을 이용할 때에는 반드시 종료 조건이 있어야한다. 없으면 무한 루프가 걸린다
while time<90:
    time+=5
    count+=1
    
print(count+score)

# 1166
year=int(input())
if (((year%4==0)&(year%100!=0))|(year%400==0)):
    print("yes")
else:
    print("no")
  • 리스트 정렬해서 원하는 숫자 출력하기.
    ⭐ 리스트에 많은 내장 함수가 있으니, 원하는 방향이 결정되면 리스트로 변경하는 것도 고려해보자~!
    참고 블로그: WIkidocs 리스트 정렬
    나는 sorted를 이용하는게 편리하다~!
# 1167
from sys import stdin
a,b,c=map(int, stdin.readline().split())
list1=[a,b,c]
list1=sorted(list1)
print(list1[1])
  • 문자열 인덱싱
  1. 문자열 인덱싱: 원하는 부분의 문자열을 꺼낼 수 있다.
  2. 문자열 "+" 연산자: 문자열을 연결시킬 수 있다.
  • 출력문 print
  1. end='' : 줄 바꿈을 실시하지 않는다.
    ⭐ cf. end = ' ' : 줄 바꿈을 실시하지 않는다. + 띄어쓰기를 1칸 해준다.
  2. sep='' : 변수 사이에 띄어쓰기를 해주지 않는다.
# 1168
ymd, s=input().split()
s=int(s)
if (s==1) or (s==2):
    year='19'+ymd[:2]
else:
    year='20'+ymd[:2]
print(2012-int(year)+1)

# 1169
age=int(input())
year=2013-age
year=str(year)
if year[:2]=='19':
    if year[-2]=='0': # 만약에 출생년도가 2000인 경우
        print(year[-1], 1) # 0 1을 출력하기
    else:
        print(year[2:], 1)
else:
    if year[-2]=='0':
        print(year[-1], 3)
    else:
        print(year[2:], 3)

# 1170
grade, _class, num=input().split()
if int(num)<10:
    print(grade,_class,'0'+num, sep='')
else:
    print(grade, _class, num, sep='')
  • ⭐ 조건이 많아서 헷갈릴 수 있는데 계속 예시를 생각하면서 하면 엄청 어렵지 않다~!
# 1171
A1.
grade, _class, num=input().split()
if 1<=int(_class)<=9:
    if 1<=int(num)<=9:
        print(grade, '0'+_class, '00'+num, sep='')
    elif 10<=int(num)<=99:
        print(grade, '0'+_class, '0'+num, sep='')
    else:
        print(grade, '0'+_class, num, sep='')
else:
    if 1<=int(num)<=9:
        print(grade, _class, '00'+num, sep='')
    elif 10<=int(num)<=99:
        print(grade, _class, '0'+num, sep='')
    else:
        print(grade, _class, num, sep='')

A2.
from sys import stdin
grade, _class, num= map(str, stdin.readline().split())
if 1<=int(_class)<=9:
    if 1<=int(num)<=9:
        print(grade, '0'+_class, '00'+num, sep='')
    elif 10<=int(num)<=99:
        print(grade, '0'+_class, '0'+num, sep='')
    else:
        print(grade, '0'+_class, num, sep='')
else:
    if 1<=int(num)<=9:
        print(grade, _class, '00'+num, sep='')
    elif 10<=int(num)<=99:
        print(grade, _class, '0'+num, sep='')
    else:
        print(grade, _class, num, sep='')

A3.
from sys import stdin
grade, _class, num= stdin.readline().split()
if 1<=int(_class)<=9:
    if 1<=int(num)<=9:
        print(grade, '0'+_class, '00'+num, sep='')
    elif 10<=int(num)<=99:
        print(grade, '0'+_class, '0'+num, sep='')
    else:
        print(grade, '0'+_class, num, sep='')
else:
    if 1<=int(num)<=9:
        print(grade, _class, '00'+num, sep='')
    elif 10<=int(num)<=99:
        print(grade, _class, '0'+num, sep='')
    else:
        print(grade, _class, num, sep='')
  • 리스트 안에 요소들을 정렬한 뒤, 한 개씩 줄바꿈없이 출력하기.
  1. list로 만들어주고, sorted 내장 함수를 이용해서 정렬해준다.
  2. for문을 이용해서 한 개씩 출력해준다. + end=' '를 이용해서 줄바꿈없이 띄어쓰기하면서 출력하기.
  • 1173번 Algorithm
    if minute < 30
    (hour-1) & (60 - (30-minute))
    if minute ≥ 30
    hour & (minute-30)
    0시인데 minute < 30이면, 21시가 되어야한다~!

  • 문자열 거꾸로 출력하기.
    문자열 거꾸로 출력

    ⭐ 이거는 진~~~짜 많이 쓰이니까 잘 기억해두기~!

  • 1180번 Algorithm
    ⭐ 수칙가 100이 넘으면 백의 자리는 무시한다
    ex. 142 % 100 = 42 이런 식으로 무시해주기.
    그리고 42 < 50 이기 때문에 GOOD 출력해야한다.

# 1172
from sys import stdin
a,b,c=map(int, stdin.readline().split())
_list=[a,b,c]
_list=sorted(_list)
for ii in _list:
    print(ii, end=' ')

# 1173
from sys import stdin
hour, minute=map(int, stdin.readline().split())
if minute<30:
    if hour != 0:
        print(hour-1, 30+minute)
    else:
        print(23, 30+minute)
else:
    print(hour, minute-30)
    
# 1180
str=input()
if 1<=int(str)<=9:
    n=str+'0'
    if int(n)*2>100:
        if (int(n)*2)%100>50:
            print((int(n)*2)%100, 'OH MY GOD')
        else:
            print((int(n)*2)%100, 'GOOD')
    else:
        if int(n)*2>50:
            print(int(n)*2, 'OH MY GOD')
        else:
            print(int(n)*2, 'GOOD')
else:
    n=str[::-1]
    if int(n)*2>100:
        if (int(n)*2)%100>50:
            print((int(n)*2)%100, 'OH MY GOD')
        else:
            print((int(n)*2)%100, 'GOOD')
    else:
        if int(n)*2>50:
            print(int(n)*2, 'OH MY GOD')
        else:
            print(int(n)*2, 'GOOD')

📌 조건문 if ~ elif ~ else

  • 숫자를 영어로 서수로 표현하기.
    예외 부분이 있으니, 코드 짤 때 고려해주기~!

  • elif와 else 쓰는 경우에 elif에 조건 잘 적어주기.
    cf. 1202번: 10<bim≤20 이라고 적어주기.

# 1202
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')
    
# 1203
bmi=int(input())
if bmi>20:
    print('비만')
elif 10<bmi<=20:
    print('과체중')
else:
    print('정상')

# 1204
num=int(input())
if 11<=num<=19:
    print(num, 'th', sep='')
else:
    if (num%10)==1:
        print(num, 'st', sep='')
    elif (num%10)==2:
        print(num, 'nd', sep='')
    elif (num%10)==3:
        print(num, 'rd', sep='')
    else:
        print(num, 'th', sep='')

# 1205
a,b=map(float, input().split())
_list=[a+b, b+a, a-b, b-a, a*b, b*a, a/b, b/a, a**b, b**a]
_max=max(_list)
print(format(_max, '.6f'))

참고 블로그: 리스트 최대 내장 함수

💛 2022. 01. 21. 금요일.

profile
알고리즘과 데이터 과학과 웹 개발을 공부하는 대학생

0개의 댓글