수정입니다
<1157> 단어공부 본문
브론즈 I
문제
알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.
입력
첫째 줄에 알파벳 대소문자로 이루어진 단어가 주어진다. 주어지는 단어의 길이는 1,000,000을 넘지 않는다.
풀이
import sys
input = sys.stdin.readline().rstrip()
input = input.upper() # 미리 다 대문자로 만들어놓기
result = []
result.append(input[0]) # 첫번째 알파벳 넣어놓고
for i in range(1, len(input)): # 두번째부터 비교하면서
if input[i] not in result: # result에 없는 알파벳이면
result.append(input[i]) # 추가 해줌
check = [0] * len(result) # 알파벳 별 개수 세어줄 list 생성
for i in range(len(result)):
for j in range(len(input)):
if result[i] == input[j]: # 둘이 같으면
check[i] = check[i] + 1 # 그 위치에 + 1
# 이중 for문 돌려서 중복되는 알파벳 거르고 count는 시켜줌
if check.count(max(check)) == 1: # check의 max 값이 딱 하나면
print (result[check.index(max(check))]) # check의 max값이 들은 index를 result에 넘겨서 알파벳 추출
else: # check의 max 값이 여러개면
print("?")
↓ 징징글
더보기
아 진짜 사실은요 백준을 너무 오랜만에 풀어서 뭐 풀어야 될 지 감도 안오고....
솔직히 언어는 파이썬을 오래 쓰기도 했고 코테용으로도 파이썬만 써서...
근데 파이썬 너무 느리기도 해서 계속 파이썬을 쓰는게 맞나 싶기도 하고...
백준도 뭐 풀어야될지 모르겠어서 걍 solved.ac에서 class 트랙에서 하나 가져옴
근데 이거 풀었더니 실버II 됐음 ㅋㅋ ㅋ큐ㅠㅋ ㅠ큐ㅠㅠ
예전에 알고리즘 그래도 그래프까지는 했던거 같은데 기억이 1나도 안남
내일부터는 알고리즘 별로 문제 풀려고...(내가 제일 못하는 DP만 진하게 기억남음)
사실 구현하는 방식도 좀 고쳐야 될거 같음 ㅠ
무지성 빡통으로 들이미는거 그만하고 먼저 설계한다음에 푸는 방식으로...
오늘 푼 것도 좀 더 좋은 방법이 있었을 것 같다..
화이링...
'백준' 카테고리의 다른 글
<9465> 스티커 - DP (1) | 2024.01.26 |
---|---|
<2579> 계단 오르기 - DP (0) | 2024.01.25 |
<1920> 수 찾기 - 이진탐색 (1) | 2024.01.25 |
<1463> 1로 만들기 - DP (1) | 2024.01.23 |
<10845> 큐 (0) | 2024.01.23 |