저항 회로의 합성 저항
면접 대비시간 제한1초메모리 제한128 MB
단자 번호와 저항값이 주어진 최대 30개의 저항에 대해, 직렬 및 병렬 결합을 반복해 두 지점 사이의 합성 저항을 구한다.
문제
전자 회로에서 흔히 쓰이는 부품 중 하나가 저항(resistor)이다. 저항은 두 개의 단자를 가지며, 전류가 흐르면 그 일부가 열로 바뀌어 전류의 흐름을 "방해"한다. 방해하는 정도는 하나의 양의 실수로 표현되며 이를 저항의 저항값이라 하고, 단위는 옴(Ohm)이다.
두 저항을 직렬(series)로 연결하면 합성 저항은 각 저항값의 합과 같다. 예를 들어 100 옴 저항과 200 옴 저항을 직렬로 연결하면 합성 저항은 300 옴이 된다. 세 개 이상을 직렬로 연결해도 마찬가지로 모든 저항값의 합이 된다.
여러 저항을 병렬(parallel)로 연결하면 합성 저항 은 다음을 만족한다.
예를 들어 100 옴과 150 옴 저항을 병렬로 연결하면 옴이 되고, 100 옴, 150 옴, 300 옴 저항을 병렬로 연결하면 옴이 된다.
저항들과 그 연결 관계에 대한 설명이 하나 이상 주어진다. 각 연결점(저항의 단자)은 서로 다른 양의 정수 라벨로 구분된다. 각 저항은 두 단자의 라벨과 저항값(실수)으로 표현된다. 예를 들어
1 2 100
은 점 1과 점 2 사이에 100 옴 저항이 연결되어 있음을 뜻한다. 직렬로 연결된 두 저항은 다음과 같이 표현할 수 있고,
1 2 100
2 3 200
(점 1과 2 사이에 100 옴, 점 2와 3 사이에 200 옴), 병렬로 연결된 두 저항은 다음과 같이 표현할 수 있다.
1 2 100
1 2 150
연결 관계와 각 저항값이 주어질 때, 위 규칙을 이용하여 지정된 두 점 사이의 합성 저항을 구하여라. 이 문제의 모든 회로는 직렬·병렬 규칙을 반복 적용하여 풀 수 있다.
입력
입력은 하나 이상의 케이스로 이루어진다. 각 케이스는 세 정수 , , 가 적힌 줄로 시작한다. 와 는 합성 저항을 구할 두 점의 라벨이고, 은 저항의 개수로 이다. 마지막 케이스 다음 줄에는 0 0 0이 주어지며 이 줄은 처리하지 않는다. N A B 줄 다음에는 개의 줄이 이어지고, 각 줄에는 한 저항이 연결된 두 단자의 라벨과 그 저항값(실수)이 주어진다.
출력
각 케이스마다 케이스 번호(1부터 순서대로 매긴다)와 소수점 아래 둘째 자리까지 반올림한 합성 저항을 다음 형식으로 한 줄에 출력한다.
Case k: R Ohms
참고
- 어떤 저항은 주어진 두 점 사이의 합성 저항에 기여하지 않을 수 있다. 예를 들어 마지막 예제 케이스(저항이 6개인 회로)에서 점 1과 2 사이의 저항에는 전류가 흐르지 않아 사용되지 않는다. 저항은 그것을 통해 전류가 흐를 수 있을 때에만 합성 저항에 기여한다.
- 어떤 저항도 한 점을 자기 자신과 연결하지 않는다. 즉, 한 저항의 두 단자 라벨은 항상 서로 다르다.