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
코드
import sys
N, m = map(int, sys.stdin.readline().rstrip().split()) #N층, m초
act_1 = N
act_2 = N//2
act_3 = (N+1)//2
act_4 = (N-1)//3 + 1
cnt = 1
#동작1
if act_1 <= m : cnt += 1
#동작2
if N>1 and act_2<=m : cnt += 1
#동작3
if N>1 and act_3<=m : cnt += 1
#동작4
if N>2 and act_4<=m : cnt += 1
#동작1 + 동작4
if N>=3 and act_1+act_4<=m : cnt+= 1
#동작2 + 동작4
if N>=3 and act_2+act_4<=m : cnt += 1
#동작3 + 동작4
if N>=3 and act_3+act_4<=m : cnt += 1
print(cnt)
✔ 순서를 바꾸는 것은 생각하지 않아도 됩니다. (같은 경우임)
# 동작2 : N이 1보다 커야 아무것도 누르지 않는 경우와 중복 되지 않습니다.
# 동작3 : N=1 일 경우, 동작1과 중복하므로 N>1 이어야 합니다.
# 동작4 : N=1 일 경우, 마찬가지로 동작1과 중복합니다. N=2일 경우는 동작3과 중복합니다. N=3인 경우부터 중복되지 않습니다.
# 동작1 + 동작4, 동작2 + 동작4, # 동작3 + 동작4 : N=1일 경우, N=2 일 경우 모두 중복됩니다.
안 되는 경우 : 동작1+동작2(=동작3) , 동작1+동작3(=동작2), 동작2+동작3(=동작1), 같은 동작이 연속되는 경우
후기
한시간 동안 열심히 함수를 구현하고 어떻게 경우의 수를 따져야하나 고민하다가 결국에는 구글링을 했습니다..
정답 코드 보자마자 이런.. 문제도 존재 하는구나... 라는 생각이.. 들더라고요.... 네............
'코딩테스트' 카테고리의 다른 글
[Python] 백준 1337번 - '올바른 배열' 풀이 (2) | 2023.01.20 |
---|---|
[Python] 백준 3100번 - '국기 인식' 풀이 (3) | 2023.01.19 |
[Python] 백준 12873번 - '기념품' 풀이 (3) | 2023.01.18 |
[Python] 백준 1049번 - '기타줄' 풀이 (2) | 2023.01.18 |
[Python] 백준 3085번 - '사탕 게임' 풀이 (1) | 2023.01.17 |