코딩테스트
[백준] 5587 카드 캡터 상근이 - Python
CuckooBird
2023. 2. 13. 15:55
백준 실버3 5587 카드 캡터 상근이 - Python
https://www.acmicpc.net/problem/5587
5587번: 카드 캡터 상근이
1번째 줄에 상근이의 점수를 출력하고, 2번째 줄에 근상이의 점수를 출력한다.
www.acmicpc.net
문제
코드
맞았습니다가 뜬 코드입니다. - 메모리 31388KB | 시간 44ms | 코드 길이 1113B
import sys
input = sys.stdin.readline
n = int(input())
p1 = list()
p2 = list(range(1, 2*n+1))
for _ in range(n):
num = int(input())
p1.append(num)
p2.remove(num)
p1.sort()
p2.sort()
card = p1[0]
p1.pop(0)
turn = 1
cnt = 0
while len(p1) > 0 and len(p2) > 0:
if turn == 1:
for i in p2:
if card < i:
card = i
p2.remove(i)
turn = 0
cnt = 0
break
else:
cnt += 1
if cnt == len(p2):
card = min(p1)
p1.remove(min(p1))
cnt = 0
break
else:
for i in p1:
if card < i:
card = i
p1.remove(i)
turn = 1
cnt = 0
break
else:
cnt += 1
if cnt == len(p1):
card = min(p2)
p2.remove(min(p2))
cnt = 0
break
score1 = len(p2)
score2 = len(p1)
print(score1)
print(score2)
Try 1.
틀렸습니다가 뜬 코드입니다. - 코드 길이 864B
import sys
input = sys.stdin.readline
n = int(input())
p1 = list()
p2 = list(range(1, 2*n+1))
for _ in range(n):
num = int(input())
p1.append(num)
p2.remove(num)
p1.sort()
p2.sort()
card = p1[0]
p1.pop(0)
i = 0
turn = 1
while 1:
if turn == 1 and card < p2[i]:
card = p2[i]
p2.pop(i)
i = 0
turn = 0
elif turn == 1 and card >= p2[i]:
i += 1
if i >= len(p2):
turn = 0
i = 0
card = p2[0]
if turn == 0 and card < p1[i]:
card = p1[i]
p1.pop(i)
i = 0
turn = 1
elif turn == 0 and card >= p1[i]:
i += 1
if i >= len(p1):
turn = 1
i = 0
card = p1[0]
if len(p1) == 0 or len(p2) == 0:
score1 = len(p2)
score2 = len(p1)
break
print(score1)
print(score2)
후기
와 진짜 기대 안 하고 다시 풀었는데 맞아서 일단 기분이 좋네요 오싯~ 백준 풀맛(야채맛 아님) 나네~~