[알고리즘 연습]-숫자카드2(python)

이준명·2021년 4월 21일
0

365-알고리즘

목록 보기
9/12

1. 문제링크

[숫자카드2] : https://www.acmicpc.net/problem/10816

2. 풀이 전 생각

문제를 읽으면서 주어진 입력수가 많아 어떻게 처리해야할지 생각했고, 어떤 방법으로 풀지 고민했던 것 같다.

3. 풀이

import sys
t = int(sys.stdin.readline())
num_card = list(map(int, sys.stdin.readline().split()[:t]))
n = int(sys.stdin.readline())
compare_card = list(map(int, sys.stdin.readline().split()[:n]))
result = [0] * n
for i in range(len(compare_card)):
    for j in range(len(num_card)):
        if compare_card[i] == num_card[j]:
            result[i] += 1
        else:
            continue

for z in result:
    print(z, end=' ')

몇개의 숫자가 들어갈지 입력받아서 [:t]를 통해 리스트의 개수 제한을 두었다. 그리고 결과를 도출할 리스트를 비교할 숫자카드의 개수에 맞춰 만들었고, 이중 반복문을 통해 가지고 있는 숫자카드를 비교하여 result에 개수를 올려주는 방식으로 풀었다.

4. 풀이하면서 고민했던 점

문제를 풀면서 사전에 해결해야 됐던 input() 문제가 있었다. 풀이를 제출할때 계속 시간 초과가 뜨길래 입력수에 대한 오류라고 생각했고, 이를 해결하기위해 검색을 통해 도움을 받았다.(출처:https://velog.io/@yeseolee/Python-%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EC%9E%85%EB%A0%A5-%EC%A0%95%EB%A6%ACsys.stdin.readline)
데이터를 반복적으로 입력받아야할때 sys.stdin.readline()을 사용하면 성능이 향상되는것을 알았고, 이전 코드들을 수정하면서 자주 이용할 예정이다.

5. 문제를 풀고 난 소감

기존에 막혀있던 부분을 해결하면서 문제도 수월하게 풀려나갔고, 문제를 풀고나니 뿌듯하다.

profile
조금씩 나아가기

0개의 댓글