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

 

이번에 볼 문제는 백준 14936번 문제인 엘리베이터 장난이다.
문제는 아래 링크를 확인하자.

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

 

14936번: 엘리베이터 장난

마지막 상태는 버튼이 모두 꺼진 상태, 버튼이 모두 켜진 상태, 짝수만 켜진 상태, 홀수만 켜진 상태, 1, 4, 7, 10층이 켜진 상태, 1, 2, 6, 7, 8층이 켜진 상태, 3, 4, 5, 9, 10층이 켜진 상태로 총 7가지가

www.acmicpc.net

각 버튼을 누르는 행동은 두 번 이상 시행하면 하지 않은 것과 동일하고, 동작 1 2 3을 모두 하는 것은 아무 동작도 하지 않은 것과 동일하므로 가능한 동작은 총 여덟가지이다.

 

단, N이 작은 경우 위의 여덟가지 행동 중 겹치는 행동들이 존재한다. 이에 유의하여 구현하자.

 

특히 입력조건상 버튼이 하나뿐인 엘리베이터도 존재할 수 있는 점에 주의하자.

 

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

#include <iostream>
using namespace std;

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

	int N, M; cin >> N >> M;
	int act1 = N;
	int act2 = N / 2;
	int act3 = act1 - act2;
	int act4 = (N + 2) / 3;

	int ans = 1;
	if (act1 <= M) ans++;
	if (N > 1) {
		if (act2 <= M) ans++;
		if (act3 <= M) ans++;
	}
	if (N > 2) {
		if (act4 <= M) ans++;
		if (act1 + act4 <= M) ans++;
		if (act2 + act4 <= M) ans++;
		if (act3 + act4 <= M) ans++;
	}
	cout << ans;
}
728x90

'BOJ' 카테고리의 다른 글

[BOJ 5376 // C++] 소수를 분수로  (0) 2022.05.29
[BOJ 5014 // C++] 스타트링크  (0) 2022.05.29
[BOJ 3067 // C++] Coins  (0) 2022.05.29
[BOJ 5934 // C++] Visiting Cows  (0) 2022.05.29
[BOJ 7573 // C++] 고기잡이  (0) 2022.05.28

+ Recent posts