퇴근하고 평일에 가볍게 알고리즘 2문제 정도 풀어보려고 한다. 해당 게시글은 이코테 책을 가지고 해당 파트가 완료될 때까지 업데이트될 예정이다.
상하좌우
더보기
N * N 크기의 정사각형 공간에서 1, 1부터 시작하여 상, 하, 좌, 우의 값을 U, D, L, R로 받아 움직인 값을 입력 받아 좌표를 출력한다. 단, 공간을 벗어나면 무시된다.
n = int(input())
moves = list(input())
x, y = 1, 1
dx = [-1, 1, 0, 0]
dy = [0, 0, -1, 1]
move_list = ['U', 'D', 'L', 'R']
for move in moves:
for i in range(len(move_list)):
if move == move_list[i]:
nx = x + dx[i]
ny = y + dy[i]
if nx < 1 or ny < 1 or nx > n or ny > n: continue
x = nx
y = ny
print(x, y)
이전에 풀이했던 기억이 있어 상, 하, 좌, 우라고 값을 지정해두고 (x, y)라고 생각하여 상일 경우에는 x에 -1, 하일 경우는 x에 +1을 해주며 공간을 이탈했을 경우에는 값을 초기화주지 않도록 지정했다.
시각
더보기
0시 00분 00초부터 n시 59분 59초까지 3이 들어간 모든 경우의 수를 구한다.
n = int(input())
cnt = 0
for i in range(n + 1):
for j in range(60):
for k in range(60):
if '3' in str(i) + str(j) + str(k): cnt += 1
print(cnt)
3시 1분, 3시 2분 이런 시간은 모두 카운트 되어야 하기에 3이 하나라도 들어가있으면 카운트를 하도록 한다.
'ps > 이것이 코딩테스트다' 카테고리의 다른 글
그리디 (0) | 2024.05.20 |
---|