-
[이코테 # 구현1] 시뮬레이션 문제: 상하좌우, 완전 탐색 문제 : 시각Programming 기초/Coding Test 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) 은 잘 알아두자.
'Programming 기초 > Coding Test' 카테고리의 다른 글
[이코테 # 구현3] 시뮬레이션 문제 : 게임 개발 (0) 2023.06.07 [이코테 # 구현2] 왕실의 나이트 (0) 2023.06.06 [이코테 # Greedy3] 숫자 카드 게임 (0) 2023.06.05 [CodeUp#review] 기초 100제 (0) 2023.06.04 [이코테 # Greedy2] 큰 수의 법칙, sort함수, 함수 매개변수의 콜론(:)과 화살표(->)의 의미 (0) 2023.06.04