본문 바로가기
PYTHON

백준 2단계 조건문_윤년, 사분면, 알람시계, 오븐시계

by jnhn 2023. 8. 26.
백준 2단계 조건문_윤년, 사분면, 알람시계, 오븐시계

백준 문제 1330 두 수 비교하기

문제: 두 정수 A와 B가 주어졌을 때, A와 B를 비교하는 프로그램을 작성하시오.

내 풀이:

a, b = map(int, input().split())
if a>b:
	print('>')
elif a<b:
	print('<')
else:
	print('==')

숏코딩:

아직 불리언을 잘 활용하지는 못하는데 확실히 익혀놓으면 활용할 방법이 많아보인다.

문제번호 9498 시험 성적

문제: 시험 점수를 입력받아 90 ~ 100점은 A, 80 ~ 89점은 B, 70 ~ 79점은 C, 60 ~ 69점은 D, 나머지 점수는 F를 출력하는 프로그램을 작성하시오.

내풀이:

a = int(input())
if a in range(90, 101):
	print('A')
elif a in range(80, 90):
	print('B')
elif a in range(70, 80):
	print('C')
elif a in range(60, 70):
	print('D')
else:
	print('F')

답은 맞았지만 더 심플하게 풀 수 있을것만같았다.

숏코딩:

출처: hahabsw

baekjoon codetest 윤년

문제: 연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오. 윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다. 예를 들어, 2012년은 4의 배수이면서 100의 배수가 아니라서 윤년이다. 1900년은 100의 배수이고 400의 배수는 아니기 때문에 윤년이 아니다. 하지만, 2000년은 400의 배수이기 때문에 윤년이다.

내 풀이:

a = int(input())
if ((a%4 == 0) and (a%100 != 0)) or (a%400 == 0):
    print('1')  # 조건 참인 경우
else:
    print('0')  # 거짓인 경우

숏코딩:

출처: kravi

백준 파이썬 14681 사분면 고르기

내 풀이:

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)
elif x>0 and y<0:
	print(4)

숏코딩:

출처: tndyd5363

우왓 이렇게 풀어볼 생각은 안했는데 역시나 불리언을 활용한 풀이

백준 파이썬 코테 2884 알람 시계

알람시계 문제:

내풀이:

a, b = map(int, input().split())  

c = b - 45 
if c >= 0:
    print(a, c)  
else:
    a -= 1  # 시간을 1시간 줄이고
    if a < 0:
        a = 23  # 만약 시간이 음수가 되면 23으로 조정
    print(a, 60 + c)  # 시간과 수정된 분 출력

숏코딩:

으아닛 이걸 이렇게 푼다구욧,,? 숏코딩의 세계 아직 갈길이 멀고나

백준 파이썬 27742328 오븐 시계

오븐시계 문제:

a, b = map(int, input().split())
c = int(input())
if (b+c)<60:
	print(a, b+c)
else:
	if (a+((b+c)//60))>=24:
		print( (a+((b+c)//60))-24, ((b+c)%60))
	else:
		print(a+((b+c)//60), ((b+c)%60))

사실 여기서 숏코딩을 찾아봤는데 숏코딩이 매우 어려워서 혼란스러운 찰나 줄인코드보다 자신이 알아보기 쉬운 코드가 우선입니다~~~~ 그래 너무 뛰어난 숏코딩보고 자신감을 잃지 않긩 대신 나의 원리와 정말 비슷한데 신박하고 깔끔한 방법으로 풀었다면 참고하고 배우깅

baekjoon python 2480 주사위 세개

백준 주사위 세개 문제:

내풀이:

a, b, c = map(int, input().split())
if a == b== c:
	print(10000+a*1000)
elif a==b and a !=c:
	print(1000 + a*100)
elif a==c and b !=a:
    print(1000 + a*100)
elif b==c and a!=b:
	print(1000 + b*100)
elif a != b and a != c and b != c:
	print(max(a, b,c)*100)

숏코딩:

출처:roy752

와 sorted를 써서 풀면 나처럼 줄줄줄 안써도 되겠네 sorted함수이용해서 나랑 비슷한 원리로 풀어서 참고하려 첨부