728x90
이번 주 가장 오래 걸렸던 문제
N, K, P, T = map(int, input().split()) # n명, k번의 악수, 처음 걸린 p, 총 악수 t번
arr_n = [0 for _ in range(101)] # 개발자 번호
arr_t = [[0 for _ in range(3)] for _ in range(251)] # 악수 list
arr_k = [0 for _ in range(101)] # 감염 횟수 몇 번 남았니
# 악수한 시간이 랜덤으로 들어오므로 저장하기 위한 list 생성
for i in range(T):
arr_t[i][0], arr_t[i][1], arr_t[i][2] = map(int, input().split())
# 악수한 시간 오름차순 sort
arr_t.sort()
# 첫 번째 감염자
arr_n[P] = 1
# 감염 기록
for elem in arr_t:
if elem[0] != 0:
_, x, y = elem[0], elem[1], elem[2] # n초, x개발자, y개발자
if arr_n[x] == 1 and arr_k[x] < K: # x개발자 보균자, 횟수 남음
if arr_n[y] == 0: # y 감염 안 됨
arr_n[y] = 1 # y 감염시킴
else:
arr_k[y] += 1 # y 악수 횟수 + 1
arr_k[x] += 1 # x 악수 횟수 +1
elif arr_n[y] == 1 and arr_k[y] < K: # y개발자 보균자, 횟수 남음
if arr_n[x] == 0: # x 감염 안 됨
arr_n[x] = 1 # x 감염시킴
else:
arr_k[x] += 1 # x 악수 횟수 +1
arr_k[y] += 1 # y 악수 횟수 +1
for elem in arr_n[1:N+1]:
print(elem, end='')
테스트 케이스를 쪼개서 if문 나누는 부분이 약한 것 같다.
해당 커리큘럼 시작한 지 한 달 정도 되었는데, 53%를 했다.
두 달은 잡아야겠구나.. 학습 소요시간 2~6개월 권장하길래 너무나도 당당하게 한 달 내로 조져주겠다고 생각했지만 항상 조져지는 건 나였고..
저번 주랑 저저번주에 거의 못 풀어서 부진해서 그런가 조금 아쉽다.
대따 재밌는데 하루종일 틀어박혀서 문제만 풀고싶다ㅋㅋ ㅋ ㅋㅋㅋㅋ
그리고 다음 주면 벌써 코드트리 조별과제가 끝난다 ㅠㅠ
무료이용권 너무 좋은데... 하지만 괜찮다. 신용카드로 해결하면 된다. ㅎ
이상 참여자가 없어서 5주째 1등 당하는 '나'.
728x90