[백준][파이썬] 10816번 숫자 카드 2

2022. 2. 22. 10:36·레거시모음/알고리즘 문제풀이

백준 온라인저지 10816번 숫자 카드 2

문제풀러 바로가기👇👇👇👇👇👇

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

 

10816번: 숫자 카드 2

첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,

www.acmicpc.net

 

 

 

문제풀이


알고리즘 분류에는 이분 탐색으로 되어있는 문제다. 그러나 Counter 함수, 딕셔너리 등 여러 가지 방식으로 풀이할 수도 있는 문제이다.

그냥 단순히 배열의 메소드인 count()를 사용하면 시간초과가 발생하니 알아두자.

나는 bisect를 이용해 문제를 풀었다. 일단 이분탐색을 하려면 정렬된 배열이 대상이어야하기 때문에 배열을 먼저 정렬한다. 그리고 bisect_left와 bisect_right를 통해 타겟의 첫번째 인덱스와 마지막 인덱스를 알아내 마지막에 첫번째를 빼주면 그 수의 개수를 알아낼 수 있다.

 

 

내 코드

from bisect import bisect_left, bisect_right

n = int(input())
a = list(map(int, input().split()))
a.sort()

m = int(input())
target = list(map(int, input().split()))
for i in target:
    count = bisect_right(a, i) - bisect_left(a, i)
    print(count, end=" ")

 

 

다른 사람의 코드 - Counter 사용

from collections import Counter

input()
n_li = list(map(int, input().split()))
k = int(input())
m_li = list(map(int, input().split()))

cnt = Counter(n_li) 

for i in m_li :
    print(cnt[i], end = ' ')
'레거시모음/알고리즘 문제풀이' 카테고리의 다른 글
  • [프로그래머스][Python] Lv2. 게임 맵 최단거리
  • [파이썬][백준] 2156번 포도주 시식
  • [백준][파이썬] 18870번 좌표압축
  • [백준][파이썬] 7576번 토마토
gakko
gakko
좌충우돌 개발기
  • gakko
    MYVELOP 마이벨롭
    gakko
  • 전체
    오늘
    어제
    • 분류 전체보기 (206) N
      • 끄적끄적 (6)
      • Spring (17)
      • Java (2)
      • Redis (1)
      • Test (3)
      • 대외활동 (36) N
        • 부스트캠프 (23)
        • IT커뮤니티 (5) N
        • 글또 (5)
        • 컨퍼런스 (3)
      • Infra (5)
        • Docker (1)
        • Jenkins (1)
        • AWS (1)
      • CS (26)
        • 자료구조 (13)
        • 운영체제 OS (12)
        • 데이터베이스 (1)
      • MySQL (7)
      • Git & GitHub (16)
        • Git (12)
        • Github Actions (1)
        • 기타(마크다운 등) (3)
      • 프로젝트 (2)
      • 리눅스 (6)
        • 기초 (6)
        • 리눅스 서버 구축하기 (0)
      • 후기 (3)
        • Udemy 리뷰 (3)
      • Python (12)
      • 레거시모음 (64)
        • 스프링 (11)
        • 자바 클래스&메소드 (1)
        • 오류해결 (18)
        • JSP & Servlet (12)
        • 자바스크립트 기초 (3)
        • React (2)
        • 이클립스 (1)
        • 알고리즘 문제풀이 (16)
      • 디자인패턴 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 우진님
  • 공지사항

  • 인기 글

  • 태그

    부스트캠프
    java
    GitHub
    자바스크립트
    Spring
    부스트캠프 멤버십
    자바
    스프링
    스프링부트
    Git
    알고리즘
    os
    운영체제
    부스트캠프 7기
    오류해결
    웹개발
    MySQL
    Python
    파이썬
    jsp
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.0
gakko
[백준][파이썬] 10816번 숫자 카드 2
상단으로

티스토리툴바