PS/BOJ

백준/c++ 33931-체크박스 누르기 풀이, 코드

0850 2025. 5. 20. 16:16
반응형

문제: https://www.acmicpc.net/problem/33931

2025 인하대학교 프로그래밍 경진대회 (IUPC) H번

 

 M을 N으로 나눠서 몫과 나머지가 무엇을 의미하는지 보자. 모든 체크박스는 몫만큼 클릭되고 그 중, 나머지만큼 한 번 더 클릭되는 체크박스가 생긴다.

 따라서 몫이 짝수면 모든 체크 박스는 짝수 번 클릭되는데 나머지 만큼의 체크 박스만 하나 더 클릭되어서 체크가 된다. 홀수면 모든 체크 박스는 홀수 번 클릭되고 나머지 만큼의 체크박스는 짝수 번 클릭된다.

ex) 8 13인 경우는 몫이 1, 나머지가 5이다. 따라서 모든 체크박스(8개)는 1번씩 클릭되는데, 나머지(5) 만큼의 체크박스는 1번씩 더 클릭된다. 따라서 8 - 5인 3개의 체크 박스만 홀수 번 클릭되어 체크 표시가 된다.

 

코드로 구현하면 아래와 같다.

#include <iostream>

using namespace std;

int main() {
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	cout.tie(nullptr);

	int N, M;
	cin >> N >> M;

	int a = M / N;
	int b = M % N;

	int ans = 0;
	if (a % 2 == 0) ans = b;
	else ans = N - b;

	cout << ans;

}
반응형