주영이는 사다리 게임을 좋아한다.
그는 긴 사다리도 쉽게 결과를 알 수 있게 사다리 타기 게임의 결과를 구하는 프로그램을 작성하려고 한다.
주영이를 도와주는 프로그램을 만들자.
프로그램은 다음과 같이 진행된다.
1. 세로 선의 개수 k와 한 선과 다른 선을 연결하는 선의 개수 n이 입력된다. (단, 2 <= k<=100, 0 <= n <= 100,000)
2. n+1줄까지 두 개의 선 번호가 입력된다. 이는 두 선이 연결되었다는 뜻이다. 두 선의 번호는 1 차이다. 단, 선의 순서는 입력 순서다.
(1 2후 2 3이 입력되었을 경우 1에서 시작하면 1-2가 먼저이니 2로 이동한 후 2-3이 다음이니 3으로 다시 이동한다.)
3. 시작 선의 번호가 주어진다.
입력
첫째줄에 세로 선의 개수 k와 가로 선의 개수 n이 입력된다.
둘째 줄 ~ n+1줄까지 두 개의 선 번호가 입력된다.
n+2번째 줄에 사다리를 타는 시작 위치 번호(p)가 입력된다.
출력
p위치에서 시작하여 사다리를 탄 결과 도착하는 위치를 출력하시오.
더보기
입력 예시
3 2
1 2
2 3
1
출력 예시
3
도움말
샘플 입출력을 그림으로 표현하면,
#include <iostream>
using namespace std;
int n, k;
int l[100001] = { 0 };
int r[100001] = { 0 };
int main() {
cin >> k >> n;
for (int i = 0; i < n; i++)
cin >> l[i] >> r[i];
int p;
cin >> p;
for (int i = 0; i < n; i++) {
if (l[i] == p)
p = r[i];
else if (r[i] == p)
p = l[i];
}
cout << p;
return 0;
}
'알고리즘' 카테고리의 다른 글
[코드업] 3733 - 우박수 길이 (3n+1) (large) (1) | 2020.03.28 |
---|---|
[코드업] 3007 - 기억력 테스트 7 (0) | 2020.03.28 |
[백준] 11403 - 경로 찾기 (0) | 2020.03.24 |
[백준] 2167 - 2차원 배열의 합 (0) | 2020.03.23 |
[코드업] 2634 - 거스름돈 II (0) | 2020.03.15 |