문제
https://www.acmicpc.net/problem/2884
<내 풀이>
1.min이 45 이상인 경우 hr에는 영향이 가지 않음 → 그대로 -45
2.min이 45 미만인 경우 min 재계산 하도록 → hr가 0인 경우와 0이 아닌 경우로 나뉨 → -1 은 무조건 해줘야 하고 hr==0인경우 24로 변수 재지정한후 -1하도록 정해줌
hr, min = map(int,(input().split()))
if min >= 45:
min -= 45
elif min < 45:
rest = 45 - min
min = 60 - rest
if hr == 0:
hr = 24
hr -= 1
print(hr, min)
23 40 # 입력
22 55 # 출력
🙆🏻♀️ comment
더 간단명료한 코드들!
1.
H, M = map(int, input().split())
if M < 45 : # 분단위가 45분보다 작을 때
if H == 0 : # 0 시이면
H = 23
M += 60
else : # 0시가 아니면 (0시보다 크면)
H -= 1
M += 60
print(H, M-45)
H,M = map(int,input().split())
if M > 44:
print(H, M-45)
elif M<45 and H>0:
print(H-1,M+15)
else:
print(23,M+15)
문제
https://www.acmicpc.net/problem/2525
<생각>
1.시간과 분 따로 생각한 뒤, 시간 먼저 반영(내 코드에서는 min변수 재지정하기때문에 시간 먼저 반영)
2.분 반영
3.시간 정리( 24시간 이상일 경우 바꿔주기, 본 문제에서는 24시 → 00시로 표시중)
hr, min = map(int, input().split())
cook_time = int(input())
# 시간의 변화값 더하여 반영
hr_c = (min + cook_time) // 60
hr += hr_c
# 분 반영
min += cook_time
min = (min % 60)
# 시간 정리
if hr >= 24:
hr -= 24
print(hr, min)
23 48 # 입력
25 # 입력
0 13 # 출력
🙆🏻♀️ comment
→ 굳이 if 문 안쓰고도 hr 값 정리 가능
→ cook_time이 1000시간에 제한되어있어 넉넉하게 잡긴했지만 그 이상의 값이 들어가도 프로그램 돌아가도록 아래방법 참고하는 것도 좋을듯 !
# 시간 정리하기
hr = (hr + (min + cook_time)//60)%24
문제
https://www.acmicpc.net/problem/2480
a, b, c = map(int, input().split())
abc = [a, b, c]
if a == b == c:
# 같은 눈 3개 나오면 10,000원 + 같은눈 * 1,000
print(10000+(a * 1000))
elif a == b != c or a == c != b:
# 같은 눈 2개 나오면 1,000원 + 같은눈 * 100
print(1000+(a * 100))
elif b == c != a:
print(1000+(b * 100))
else:
# 모두 다른 눈 -> 그 중 가장 큰 눈 * 100
print(max(abc) * 100)
6 2 5 # 입력
600 # 출력
🙆🏻♀️ comment
-사실 같은 값이 2개 나오는 조건문에서 여러 줄으로 나눠쓰고 싶지 않아서 여러 방법을 생각하고 찾아봤는데, for이나 count 쓰는 방법 밖에 생각나지 않아서 위와 같이 풀이함.
→’솜씨좋은 장씨’님의 풀이 https://somjang.tistory.com/entry/BaekJoon-2480번-주사위-세개-Python 참고하고 배웠다!!
⭐ 중복을 제거해서 len으로 조건식 세워주는 방법도 있음~!!
-python 내장 함수
-집합에 관련된 것을 쉽게 처리하기 위해 만든 자료형(리스트, 문자열)으로
1. 중복을 허용하지 않는다.
2. 순서가 없다 → 인덱싱으로 값을 얻을 수 없다.(인덱싱으로 접근하려면 리스트 or 튜플로 변환해야 한다.)
s = set([3, 2, 3, 4, 1, 1, 2, 4, 3])
print(s)
s2 = set('hello')
print(s2)
# 리스트로 변환하기
li = list(s)
print(li)
print(li[0])
{1, 2, 3, 4}
{'e', 'o', 'l', 'h'} # 값 순서 랜덤하게 바뀜
[1, 2, 3, 4] # 리스트로 변환
1 # 인덱싱 사용 가능
백준 단계별 문제 2단계까지 완료! 꾸준히 계속 풀어나가기! 🥳