본문 바로가기
코딩 테스트/백준

제리와 톰 2

by ornni 2024. 4. 23.
728x90
반응형

첫번째 코드

 

먼저 내 아이디어는 [분자, 분모]로 구성된 리스트에서 규칙을 찾아 반복하는 것이다.

어떻게 분모와 분자가 변하는지 확인을 위해 직접 문제를 풀어봤다.

파란색으로 구성된 것이 주어지는 값이다.

이는 입력에서 반대로 진행되므로 reverse()함수를 이용한다.

 

그리고 버블 소트에서 사용한 분자와 분모의 위치를 swap한 후 "분모수*(다음수) + 분자수"를 구한다.

이를 다 적용한 후 마지막에 위치를 바꾼 후 "분모수-분자수"로 분자수를 갱신한다.

 

그러면 아래와 같은 코드를 작성할 수 있다.

 

import sys
input = sys.stdin.readline

n = int(input())
A = list(map(int, input().split()))
A.reverse()

answer = [A[0], 1]

for i in A[1:]:
    tmp = answer[0]
    answer[0] = answer[1]
    answer[1] = tmp
    
    answer[0] = (answer[1] * i) + answer[0]

tmp = answer[0]
answer[0] = answer[1]
answer[1] = tmp

answer[0] = answer[1] - answer[0]

print(*answer)

 

통과!


링크

https://github.com/ornni/programmers/tree/main/%EB%B0%B1%EC%A4%80/Silver/17504.%E2%80%85%EC%A0%9C%EB%A6%AC%EC%99%80%E2%80%85%ED%86%B0%E2%80%852

 

programmers/백준/Silver/17504. 제리와 톰 2 at main · ornni/programmers

repository for recording Programmers Algorithm problem solving - ornni/programmers

github.com

 

반응형

'코딩 테스트 > 백준' 카테고리의 다른 글

평균  (0) 2024.04.29
바구니 뒤집기  (4) 2024.04.28
이제는 더 이상 물러날 곳이 없다  (0) 2024.04.27
골뱅이 찍기 - 돌아간 ㅍ  (4) 2024.04.24
번호표 교환  (0) 2024.04.22