[백준/파이썬] 14467번

민정·2023년 2월 28일
0

[백준/파이썬]

목록 보기
104/245
post-thumbnail

백준 14467번

문제

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

코드

#풀이 1
n = int(input())
cnt = 0
li = []

for _ in range(n):
    cow, road = map(int, input().split())
    li.append([cow, road])

for i in range(n):
    for j in range(i+1,n):
        if li[i][0] == li[j][0]:
            if abs(li[i][1]- li[j][1]) == 0:
                break
            if abs(li[i][1] - li[j][1]) == 1:
                cnt += 1
                break

print(cnt)
#풀이2
n = int(input())
cow = [-1] * 11
cnt = 0

for _ in range(n):
    target_cow, position = map(int, input().split(' '))

    if cow[target_cow] == -1:
        cow[target_cow] = position
    else:
        if cow[target_cow] != position:
            cnt += 1
            cow[target_cow] = position

print(cnt)

풀이

  • 풀이 1
    입력을 다 받고나서 이중반복문을 통해 소의 번호가 같은지 확인합니다. 만약 소의 위치가 다르다면 cnt값을 더해줍니다.

  • 풀이 2
    풀이 1이 복잡해보여서 찾아본 풀이.
    만약 소의 번호가 이전에 존재하지 않던 번호라면 cow[target_cow]의 값을 현재 위치의 값으로 변경해줍니다.
    만약 위치 값이 다르다면 cnt값에 1을 더해주고 위치값을 현재 위치값으로 변경해주비니다.
    (출처: https://tmdrl5779.tistory.com/127)

profile
パㅔバ6ㅇr 덤벼ㄹΓ :-0

0개의 댓글