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

2022. 2. 22. 10:36·Python/알고리즘 문제풀이

백준 온라인저지 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/알고리즘 문제풀이' 카테고리의 다른 글
  • [프로그래머스][Python] Lv2. 게임 맵 최단거리
  • [파이썬][백준] 2156번 포도주 시식
  • [백준][파이썬] 18870번 좌표압축
  • [백준][파이썬] 7576번 토마토
gakko
gakko
좌충우돌 개발기
  • gakko
    MYVELOP 마이벨롭
    gakko
  • 전체
    오늘
    어제
    • 분류 전체보기 (203)
      • Spring (23)
        • Spring (10)
        • Spring Boot (7)
        • Spring Security (1)
        • Hibernate (4)
      • Test (3)
      • 끄적끄적 (6)
      • 활동 (35)
        • 부스트캠프 (23)
        • 동아리 (3)
        • 컨퍼런스 (3)
        • 글또 (5)
        • 오픈소스 컨트리뷰션 (1)
      • 디자인패턴 (0)
      • Git & GitHub (22)
        • Git (13)
        • Github Actions (1)
        • 오류해결 (5)
        • 기타(마크다운 등) (3)
      • 리눅스 (6)
        • 기초 (6)
        • 리눅스 서버 구축하기 (0)
      • Infra (2)
        • Docker (1)
        • Elastic Search (0)
        • Jenkins (1)
        • AWS (1)
      • MySQL (7)
        • 기초 (6)
        • Real MySQL (1)
      • 후기 (3)
        • Udemy 리뷰 (3)
      • CS (26)
        • 웹 기본지식 (0)
        • 자료구조 (13)
        • 운영체제 OS (12)
        • 데이터베이스 (1)
        • 시스템 프로그래밍 (0)
        • 기타 (0)
      • Tools (1)
        • 이클립스 (1)
        • IntelliJ (0)
      • 프로젝트 (1)
        • 모여모여(부스트캠프) (1)
      • JAVA (32)
        • Maven (6)
        • 오류해결 (11)
        • 자바 클래스&메소드 (1)
        • JSP & Servlet (12)
      • Javascript (5)
        • 기초 (3)
        • React (2)
      • Python (28)
        • 파이썬 함수 (9)
        • 알고리즘 문제풀이 (16)
        • 데이터 사이언스 (2)
        • 웹 크롤링 (1)
      • 단순정보전달글 저장소 (0)
  • 블로그 메뉴

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

    • 우진님
  • 공지사항

  • 인기 글

  • 태그

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

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

티스토리툴바