Programming 기초/Coding Test
[이코테 # 구현1] 시뮬레이션 문제: 상하좌우, 완전 탐색 문제 : 시각
코딩상륙작전
2023. 6. 6. 21:40
* 상하좌우(P.110 예제 4-1)
풀이 시간 : 15분
N = int(input())
path = list(input().split())
x, y = 1, 1
for i in range(len(path)):
if path[i] == "L" and y - 1 > 0:
y -= 1
elif path[i] == "R" and y + 1 <= N:
y += 1
elif path[i] == "U" and x - 1 > 0:
x -= 1
elif path[i] == "D" and x + 1 <= N:
x += 1
print(x, y)
* 시각(P.113 예제 4-2)
풀이 시간 : 15분
n = int(input())
# 초 : 3, 13, 23, 30 ~ 39, 43, 53,
# 분 : 0, 3, 13, 23, 30 ~ 39, 43, 53,
# 시 : 3 , 13, 23
if n < 3:
print((3600 - 45 * 45) * (n + 1))
elif n >= 3 and n < 13:
print((3600 - 45 * 45) * n + 60 * 60)
elif n >= 13 and n < 23:
print((3600 - 45 * 45) * n + 60 * 60 * 2)
elif n >= 13 and n < 23:
print((3600 - 45 * 45) * n + 60 * 60 * 3)
시간복잡도 : n(1)
수학적 풀이로 풀었으나, 실수하기 쉽기 때문에 좋은 접근법은 아닌 것 같다.
하루 시간은 24*60*60 으로, 총 경우의 수가 100,000개도 안 되므로 하나하나 체크하는 방식으로 하는 것이 직관적이고, 실수가 적은 방식이다.
# 제공 답변
h = int(input())
count = 0
for h in range(h+1):
for j in range(60):
for k in range(60):
if '3' in str(h)+str(j)+str(k):
count+=1
print(count)
if '3' in str(h)+str(j)+str(k) 은 잘 알아두자.