※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※

 

이번에 볼 문제는 백준 27467번 문제인 수학 퀴즈이다.
문제는 아래 링크를 확인하자.

https://www.acmicpc.net/problem/27467 

 

27467번: 수학 퀴즈

문제에서 설명한 두 실수 $p$, $q$를 출력한다. 단, 정답과의 절대/상대 오차는 $10^{-9}$까지 허용한다.

www.acmicpc.net

ω2+ω+1=0 의 양변에 w1을 곱해 좌변을 전개하면 ω3=1을 얻을 수 있다. 따라서 ωk=ω3m+k이 성립한다. (단, m은 정수이다.) 이를 이용하면 모든 ωk의 꼴을 ω에 대한 (최대) 이차식으로 변형할 수 있게 된다.

 

위의 성질과 주어진 식에서 이항을 통해 얻을 수 있는 ω2=ω1와 같은 식을 이용해 주어진 식을 ω에 대한 일차식으로 변형하고 문제를 해결하자.

 

아래는 제출한 소스코드이다.

#include <iostream>
using namespace std;

int N;
int P, Q;

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);

	cin >> N;
	while (N--) {
		int A; cin >> A;
		A %= 3;
		if (A == 2) P--, Q--;
		else if (A == 1) P++;
		else Q++;
	}

	cout << P << ' ' << Q;
}
728x90

'BOJ' 카테고리의 다른 글

[BOJ 9784 // C++] Boiled Eggs  (0) 2023.02.20
[BOJ 11605 // C++] Magic Trick  (0) 2023.02.20
[BOJ 1802 // C++] 종이 접기  (0) 2023.02.19
[BOJ 25276 // C++] Sperhling  (0) 2023.02.19
[BOJ 27466 // C++] 그래서 대회 이름 뭐로 하죠  (0) 2023.02.19

+ Recent posts