Algorithm Problem/Python
[python] SWEA - 4371. 항구에 들어오는 배
deo2kim
2020. 12. 15. 22:44
반응형

🤔문제 해결
-
D3
💨 두번째 즐거운 날 부터 1일과의 차이를 계산한다
💨 그 규칙만큼 마지막 즐거운 날까지의 배를 배열에 담는다.
💨 다음 즐거운 날이 이미 배열에 없는 경우만 차이를 계산하여 반복한다.
💨 1, 7, 10, 13, 19
💨 두번째 즐거운 날(7) 과 1일 차이 = 6
💨 배열 = [7, 13, 19]
💨 세번째 즐거운날 10 은 배열에 없으므로 차이 계산
💨 세번재 즐거운 날(10) 과 1일 차이 = 9
💨 배열 = [7, 10, 13, 19]
💨 네번째, 다섯번째 즐거운 날 (13, 19) 는 이미 배열에 있으므로 pass
💨 총 계산을 두 번 했으므로 배는 2개
💻소스 코드
for tc in range(int(input())):
N = int(input())
happy_days = []
for i in range(N):
happy_days.append(int(input()))
ships = set()
answer = 0
for i in range(1, len(happy_days)):
if happy_days[i] in ships:
continue
gap = happy_days[i] - 1
for j in range(1 + gap, happy_days[-1] + 1, gap):
ships.add(j)
answer += 1
print(f'#{tc + 1} {answer}')
📕문제 확인
출처: SW Expert Academy
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
반응형