Skip to content

BOJ17128_소가 정보섬에 올라온 이유_실버2_이동혁 #18

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Feb 13, 2024

Conversation

DHLemonade
Copy link
Collaborator

Overview

핵심은 리스트를 사용하면서 장난질 칠 때마다 연산을 전부 다시 하는 것을 피하는 것!!
장난질 이전 계산식을 수행한 결과를 리스트에 저정한다(인덱스별로 각각)
품질 점수의 합계를 변수를 따로 지정해 저장한다.

이후 장난질을 한 번씩 할때마다, 총 네개의 리스트 요소들의 부호가 바뀐다.
계산식을 수형한 결과 리스트의 부호를 바꿔주고, 품질 점수 합계를 업데이트해준다.
장난을 할 때마다 리스트의 sum을 갈기면 시간초과가 나니 주의!

Code

품질 점수를 저장할 리스트는 곱하기 해야되니까 모두 1로 채운뒤 초기화

n, q = map(int, input().split())
quality_sum_list = [1 for _ in range(n)]

품질 점수 업데이트

qualities = map(int, input().split())
i = 0
for quality in qualities:
    quality_sum_list[i % n] *= quality
    quality_sum_list[(i - 1) % n] *= quality
    quality_sum_list[(i - 2) % n] *= quality
    quality_sum_list[(i - 3) % n] *= quality
    i += 1

quality_sum = sum(quality_sum_list)

장난할 때마다 리스트를 업데이트하고 합계도 업데이트

jokes = map(int, input().split())
for joke in jokes:
    quality_sum_list[(joke - 1) % n] = -quality_sum_list[(joke - 1) % n]
    quality_sum_list[(joke - 2) % n] = -quality_sum_list[(joke - 2) % n]
    quality_sum_list[(joke - 3) % n] = -quality_sum_list[(joke - 3) % n]
    quality_sum_list[(joke - 4) % n] = -quality_sum_list[(joke - 4) % n]
    quality_sum += 2*(quality_sum_list[(joke - 1) % n] + quality_sum_list[(joke - 2) % n] + quality_sum_list[(joke - 3) % n] + quality_sum_list[(joke - 4) % n])
    print(quality_sum)

@jojaegu2
Copy link
Collaborator

나와는 완전 다른 풀이 ,잘봤읍니다.

@DHLemonade DHLemonade merged commit 028a23e into main Feb 13, 2024
@DHLemonade DHLemonade deleted the BOJ17128_이동혁 branch February 13, 2024 12:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants