https://github.com/Dev-Guccin
Guccin
https://github.com/Dev-Guccin
전체 방문자
오늘
어제
  • 분류 전체보기 (172)
    • 알고리즘 (140)
    • 삽질방지 (13)
    • SystemHacking (1)
    • 일상 (4)
    • 개발 (8)
    • 스프링 부트 REST API 개발일지 (5)
    • JPA (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • BFS
  • 큐
  • counter
  • 최소힙
  • 다익스트라
  • 최대공약수
  • 다이나믹 프로그래밍
  • 그리디
  • heapq
  • 다이나믹프로그래밍
  • 재귀함수
  • python3
  • 스택
  • 백트래킹
  • 백준
  • 프로그래머스
  • 이분 탐색
  • DFS
  • 이분탐색
  • 최단경로
  • 그래프
  • MST
  • 유니온 파인드
  • DP
  • 유클리드호제법
  • LIS
  • 12015
  • Python
  • 재귀
  • 파이썬

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
https://github.com/Dev-Guccin

Guccin

백준 2108 풀이 (python, collections, Counter)
알고리즘

백준 2108 풀이 (python, collections, Counter)

2021. 2. 13. 23:18

이번꺼 어떻게 해야하는지 알면서도 헤맸던 문제였던거 같다. 계속 시간초과가 나와서 좀더 빠르게 할수 있는 방법이 있는지 찾아보기도 하다가. collection을 알게 되었다.

예전에 악성코드 분석할때 전처리 과정에서 사용해보라는 추천을 받았던 기억이 난다. 물론 난 이전 방법이 다루기가 편해서 굳이 사용해보지 않았지만 이번에 사용해 볼 수 있었다.

 

collections모듈을 데이터 처리를 할때 자주 사용된다고 한다. 합을 구하거나 중복수를 찾거나 하는경우 Counter객체를 사용한다고 한다. 따라서 이 객체를 사용해보았다.

Counter는 딕셔너리 형태처럼 사용된다. 따라서 딕셔너리에서 사용가능한 함수들을 사용가능하다. 

Counter객체를 선언만 했을뿐이지만 중복순서대로 값을 정렬하는 것을 확인가능하다.

Counter에서 중요한 함수는 most_common이다. 이 함수를 사용하면 가장 많이 사용된 데이터를 기준으로 정렬을 하게된다. 기존에 객체만 선언하게 되면 Counter객체에 속해 있기 때문에 숫자 인덱스로 접근이 불가능하다. 따라서 most_common을 사용해서 리스트로 값을 받아내면 편하게 사용가능하다.

중복이 많은 순으로 정렬된 리스트를 c가 가지게 된다.  

import sys
import math
n = int(input())
tmp = []
for _ in range(n):
    i = int(sys.stdin.readline())
    tmp.append(i)
tmp = sorted(tmp)
print(round(sum(tmp)/n))# 평균
print(tmp[n//2])# 중앙값
from collections import Counter
c = Counter(tmp).most_common(2) # 중복수가 많은것을 순위대로 2개 뽑는다.
if n == 1:
    print(tmp[0])
else:
    if c[0][1] == c[1][1]:
        print(c[1][0])
    else:
        print(c[0][0])
print(tmp[-1] - tmp[0])

 

'알고리즘' 카테고리의 다른 글

백준 15649 풀이 (재귀함수, 백트래킹)  (0) 2021.02.15
백준 11651 풀이 (sort, 여러 인자 정렬하기)  (0) 2021.02.14
#4 알고리즘 공부 2/12 리뷰  (0) 2021.02.12
백준 2751 풀이 (힙정렬)  (0) 2021.02.12
백준 11729 풀이 (하노이탑)  (0) 2021.02.11
    '알고리즘' 카테고리의 다른 글
    • 백준 15649 풀이 (재귀함수, 백트래킹)
    • 백준 11651 풀이 (sort, 여러 인자 정렬하기)
    • #4 알고리즘 공부 2/12 리뷰
    • 백준 2751 풀이 (힙정렬)
    https://github.com/Dev-Guccin
    https://github.com/Dev-Guccin
    https://github.com/Dev-Guccin

    티스토리툴바