상세 컨텐츠

본문 제목

[백준 14467번] 소가 길을 건너간 이유1(python)

알고리즘 공부

by Tabris4547 2022. 6. 7. 11:35

본문

728x90

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

 

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

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

www.acmicpc.net

이 문제는 아주 간단한 구현문제입니다.

처음에 다소 당황할 수 있겠지만

차근차근 풀다보면 풀어낼 수 있습니다.

 

소의 번호는

1~10까지 자연수이므로

저는 배열의 크기를 11로 선언했습니다.

배열은 0부터 들어가기 때무넹

11을 선언해서

0~10까지 선언이 됩니다.

어처피 맨 앞에 0은 안써도 되니 신경안써도 되고요.

저는 배열을 초기화할 때

-1로 초기화해줬습니다.

위치가 0,1로 이루어져있기 때문에

-1이 가장 적당해보였죠.

그 후, N을 받은 후 소의 위치를 파악하는데,

소의 번호에 위치저장 여부를 봅니다.

만약 위치저장이 안 되어있다면

지금 관찰한 위치를 넣으면 되고요.

만약 위치저장이 되있다면

현재 위치와 비교해서

다르다면 change를 1더해줍니다.

 

#백준 14467 소가 길을 건넌 이유

N=int(input())
cow_r=[-1]*11 #-1로 초기화
change=0

for i in range(N):
    cow_n,rotate=map(int,input().split())

    #만약 아직 위치선정x-->위치지정해주기
    if cow_r[cow_n]==-1:
        cow_r[cow_n]=rotate
    #위치선정이 된 케이스라면
    else:
        if not cow_r[cow_n]==rotate:
            change+=1
        cow_r[cow_n]=rotate

print(change)

어려운 문제는 아니지만

배열을 어떻게 초기화할지 점검할 수 있는 문제입니다.

728x90

관련글 더보기

댓글 영역