[문제 링크] 👇
풀이 방법
💡 B ➜ A 순으로 조건을 확인하고 처리
B 부터 확인
- B 가 C 보다 크거나 같으면, B 를 1 감소시키고, 결과값을 1 누적하며 증가시킨다.
- 감소시키다가 B 가 C 보다 작아지면 루프를 중단시킨다.
- 추가로, B 가 1 보다 작아지면 루프를 중단한다.
A 도 마찬가지로 B 와 비교하며 루프를 돌게 한다.
루프가 끝나면 다음 조건을 추가한다. A 와 B 가 같거나, A 와 C 가 같으면 결과에 -1 을 저장한다.
Solution
T = int(input()) # 테스트 케이스 수
for test_case in range(1, T + 1):
A, B, C = map(int, input().split())
result = 0
while B >= C and B > 1:
B -= 1
result += 1
while A >= B and A > 1:
A -= 1
result += 1
if A == B or A == C:
result = -1
print(f"#{test_case} {result}")
👩💻 회고
처음엔 -1 출력 조건을 이렇게 작성했더니 제출에 실패해서. 반례 테스트 케이스를 참고해서 수정했다.
if A == B or A == C:
result = -1
반례 테스트 케이스
- 입력이 감소할 수 없는 구조일 때
- 테스트 케이스: 2 2 2
- 기대 출력: -1
- 설명: A == B == C이므로 줄여도 조건을 만족할 수 없습니다.
- A가 B보다 큰 경우
- 테스트 케이스: 3 2 1
- 기대 출력: -1
- 설명: 이미 A > B > C 형태로 A < B < C 조건을 만들 수 없습니다.
- B와 C가 같아질 수 없는 경우
- 테스트 케이스: 1 2 2
- 기대 출력: -1
- 설명: B와 C가 같기 때문에 감소해도 A < B < C 조건을 만들 수 없습니다.
이 반례들로 코드를 테스트하면, 조건에 맞지 않을 때도 -1이 출력되는지 확인할 수 있다.
'SWEA' 카테고리의 다른 글
[SWEA] 1940. 가랏! RC카! (Python/D2) (0) | 2024.11.10 |
---|---|
[SWEA] 2005. 파스칼의 삼각형 (Python/D2) (0) | 2024.11.10 |
[Programmers] L1. 기사단원의 무기 (Python) (2) | 2024.11.07 |
[SWEA] 4676. 늘어지는 소리 만들기 (Python/D3) (0) | 2024.11.04 |
[SWEA] 12004. 구구단 1 (Python/D3) (0) | 2024.11.04 |