본문 바로가기

Algorithm/Implementation

(C++) - 백준(BOJ) 14467번 : 소가 길을 건너간 이유 1

반응형

https://www.acmicpc.net/problem/14467

 

14467번: 소가 길을 건너간 이유 1

3번 소는 위치 1, 0, 1에서 관찰되었으므로 길을 최소 두 번 건넜음을 확인할 수 있다. 4번 소도 길을 한 번 건넜으며, 나머지 소는 길을 건넌 기록이 확인되지 않는다.

www.acmicpc.net

반복문과 분기문을 사용해보는 문제였습니다.

📕 풀이방법

📔 입력 및 초기화

 10마리 소의 위치를 나타낼 일차원 배열 cow, 관찰 횟수 n, 정답을 출력할 변수 ans를 int형으로 선언합니다. cow의 값을 -1로 초기화해줍니다.

 

📔 풀이과정

 매 루프마다 a, b를 선언 후 입력합니다. a는 소의 번호, b는 소의 위치를 의미합니다. 1. 처음 소의 위치가 -1인 경우에는 소의 초기 위치를 정한 것이므로 소의 초기 위치를 저장해줍니다. 2. 처음 소의 위치가 -1이 아니라면 이미 초기 소의 위치가 저장되어 있으므로 b와 다른지 확인후 다르다면 ans를 더해줍니다.

 

📔 정답출력

ans를 출력합니다.


📕 Code

#include <bits/stdc++.h>
using namespace std;
int cow[11];
int n, ans;
int main(){
    memset(cow,-1,sizeof(cow));
    cin >> n;
    while(n--) {
        int a, b;
        cin >> a >> b;
        if(cow[a] != -1 && cow[a] != b) ans++;
        cow[a] = b;
    }
    cout << ans;
}