반응형
https://www.acmicpc.net/problem/14467
소가 길을 건너간 이유 1
2개의 목초지가 있을 때 총 10마리의 소가 서로 다른 목초지로 이동하는 횟수를 구하는 문제
단순 구현 문제
📌 문제 접근 포인트
1. 소가 이동하는 것에 대해 나타내줄 리스트를 만들어주자.
2. 최초에 소가 자리에 없으면 해당 위치에 소를 넣어주자.
3. 다음에 같은 소가 선택됐는데 목초지의 위치가 다르다면 소를 그 목초지로 이동시키고, 횟수를 세어주도록 만들어주면 구현 성공
⚙️ 내가 푼 정답 코드 1
import sys
N = int(sys.stdin.readline())
cows = [2]*11
result = 0
for _ in range(N):
cow, pasture = map(int,sys.stdin.readline().split())
if cows[cow] == 2: # 소 없으면
cows[cow] = pasture # 배정
elif cows[cow] != pasture: # 소는 있는데 다른 목초지면
cows[cow] = pasture # 그 목초지로 이동하고
result += 1 # 움직임 증가
print(result)
⚙️ 내가 푼 정답 코드 2
# remove를 활용한 방식
# 수가 적어서 빠르게 사용 가능하지만, 수가 많은 케이스에선 권장되지 않음(시간초과)
import sys
N = int(sys.stdin.readline())
cows = [[],[]]
result = 0
for _ in range(N):
cow, move = map(int, sys.stdin.readline().split())
if cow not in cows[0] and cow not in cows[1]:
cows[move].append(cow)
else :
if cow not in cows[move]:
if move == 0 :
cows[1].remove(cow)
cows[0].append(cow)
else :
cows[0].remove(cow)
cows[1].append(cow)
result += 1
print(result)
반응형
'알고리즘 풀이 > 백준' 카테고리의 다른 글
[백준 2448] 별 찍기 - 11 (python) (0) | 2023.04.27 |
---|---|
[백준 14468] 소가 길을 건너간 이유 2 (python) (0) | 2023.04.27 |
[백준 15685] 드래곤 커브(python) (0) | 2023.04.25 |
[백준 13909] 창문 닫기 (python) (0) | 2023.04.25 |
[백준 13140] Hello World! (python) (0) | 2023.04.25 |
댓글