fragment-header
fragment-markdown
홈
로그인
로그아웃
내 블로그
설정
로그인
백준 34544 (C++) 후문으로
최초 업로드: 2025-10-05 17:18:59
최근 수정 시간: 2025-10-05 17:18:59
게시자: rlatjwls3333
카테고리: 백준
조회수: 4
# [Bronze II] 후문으로 [문제 링크](https://www.acmicpc.net/problem/34544) ## 문제 설명 <p>홍익대학교에는 정문과 후문, 그리고 여러 건물들이 연결되어 존재한다.</p> <p>한서는 문득 정문과 후문의 높이가 다른 것 같다고 생각했다. 이를 검증하고자, 홍익대학교의 건물들을 이용해 정문으로부터 후문의 <strong>상대적인 층수</strong>를 다음과 같이 계산하려고 한다.</p> <p>가장 먼저 정문으로 들어선다. 이 상태를 정문으로부터 상대적으로 1층이라고 생각한다.</p> <p>이후 연결된 $N$개의 건물을 차례대로 방문하는데, $i$번째로 건물을 방문할 때에는 해당 건물의 $A_i$층으로 들어가 층을 이동한 후 $B_i$층으로 나온다. 이때 층이 상승하거나 하강한 만큼, 상대적인 층수도 상승하거나 하강한다.</p> <p>마지막 $N$번째 건물을 방문한 후에는 후문으로 빠져나온다. 최종적으로 이때의 상대적인 층수를 정문으로부터 후문의 상대적인 층수라고 생각한다.</p> <p>한서는 방금 막 여정을 마치고 기록했다. 기록을 보고 정문으로부터 후문의 상대적인 층수를 구하자.</p> ## 입력 <p>첫번째 줄에 방문한 건물의 수 $N$이 주어진다.</p> <p>다음 $N$줄에 걸쳐 여정의 기록이 주어진다. $1+i$ ($1 \le i \le N$)번째 줄에는 $A_i$와 $B_i$가 공백으로 구분되어 주어진다.</p> <p>이때 $A_i$나 $B_i$가 음수인 경우, $-x$층은 일반적인 한국의 지하 $x$층을 나타낸다. 예를 들어, $-1$로 주어진 층은 지하 1층을 나타내며, 1층과의 차이는 2가 아닌 1이다. 0층은 존재하지 않는다.</p> ## 출력 <p>한서의 기록을 보고 계산한 정문으로부터 후문의 상대적인 층수를 출력한다. 지하인 경우 입력과 같은 방법으로 음수를 이용하여 출력한다.</p> ## 풀이 0층이 없다는 것을 유의해서 구현해야 한다. ``` c++ #include<bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0); int n; cin >> n; int res=1; while(n--) { int a, b; cin >> a >> b; res += b-a; if(a*b<0) res += (a<b ? -1 : 1); } cout << (res<=0 ? res-1 : res); } ```