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

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

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

최근 댓글

최근 글

티스토리

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

Guccin

알고리즘

백준 1157 풀이 (max, count, 집합자료형)

2021. 2. 6. 15:01

집합자료형

1. 중복이 없다.

2. 순서가 없다.(dic은 순서가 있음)

=> 유니크한 list정도로 보면 되지 않을까....

 

새로 알게된 내용

max를 이용해서 최고값을 리스트에서 찾을수있다.

count를 이용하여 중복되는 개수를 한번에 구할 수 있다.

 

문제는 단어에 대해서 많이 중복된 것을 찾아서 알파벳을 출력하는 것이다. 만약 가장 큰 중복 개수가 2개 이상이면 "?"를 출력한다.

1. 단어에서 유니크한 알파벳을 뽑아낸다.

2. 유니크한 알파벳이 몇개씩 존재하는지 개수를 센다.

3. 최고개수가 2개 이상이면 "?"를 출력, 1개면 해당 알파벳 출력

 

string = input().upper()

uniquelist = list(set(string)) # 집합자료형을 사용하여 유니크한 값을 가져온다.
cntlist=[]
for x in uniquelist:
    cnt = string.count(x) # 단어에 해당 알파벳의 개수를 센다.
    cntlist.append(cnt) # 유니크 알파벳 순서대로 최고 개수가 들어간다.

if cntlist.count(max(cntlist))>1: # 알파벳의 최고개수를 구하여 몇개나 중복되는지 검증
    print("?")
else:
    max_index = cntlist.index(max(cntlist)) # 최고개수의 알파벳 위치를 구한다.
    print(uniquelist[max_index]) # 해당 알파벳의 위치를 통해 알파벳을 출력한다.

 

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

백준 2775 풀이  (0) 2021.02.07
백준 1193 풀이  (0) 2021.02.07
#2 알고리즘 공부 2/6 리뷰  (0) 2021.02.06
백준 1065 풀이 (python)  (0) 2021.02.06
#1 알고리즘 공부 시작!  (0) 2021.02.04
    '알고리즘' 카테고리의 다른 글
    • 백준 1193 풀이
    • #2 알고리즘 공부 2/6 리뷰
    • 백준 1065 풀이 (python)
    • #1 알고리즘 공부 시작!
    https://github.com/Dev-Guccin
    https://github.com/Dev-Guccin
    https://github.com/Dev-Guccin

    티스토리툴바