티스토리 뷰

백준

백준 1157 문제풀이 [python]

ys.k 2023. 6. 11. 02:11

포스팅에 앞서 내용이 틀릴 수 있습니다.
해당 부분 지적 감사히 받습니다.

문제를 보자.

쉽다고 생각했는데, 생각보다 고전했다.

 

고민은 코드에 모두 담아놨다.

 

코드

a = list(input())

b = list(set(a))

memory = [0]*26
array= []
memory2 = 0
memory3 = 0

for i in range(len(a)):
    if ord(a[i])>=97:
        array.append(ord(a[i])-32)
    else:
        array.append(ord(a[i]))

for i in range(len(array)):
    if array[i] >=97:
        memory[array[i]-97] += 1
    else:
        memory[array[i]-65] += 1

for i in range(0,26):
    if max(memory) == memory[i] :
        memory2 = i
        memory3 += 1
    if memory3 == 2:
        print('?')
        break
else:
    print(chr(memory2+65))

더 짧게 하는 방법이 무조건 있을 것 같다.

 

다른 사람 코드를 읽고 왔는데, 나의 무능을 다시 한번 느꼈다.

 

코드

s = input().upper()

s_set = list(set(s)) # 입력받은 문자열에서 중복 값 제거하여 정렬(무작위)

cnt = []

for i in s_set :
    cnt.append(s.count(i))  # 입력의 count를 cnt 리스트에 추가

if cnt.count(max(cnt)) > 1 :
    print("?")  
   
else :
    print(s_set[cnt.index(max(cnt))])

출처 : https://wjunsea.tistory.com/44

 

[BaekJoon/Python] : 백준 1157번 - 단어 공부

이번 포스팅은 www.acmicpc.net/problem/1157에서 푼 것을 토대로 작성했습니다. 문자열의 다섯 번째 문제인 단어 공부입니다. 문제 문제를 보고 저 나름대로 해석을 먼저 했습니다. 1. 알파벳 대소문자

wjunsea.tistory.com

ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

 

사람은 똑똑해야한다.

 

. upper을 사용하면 내가 푼 방식대로 할 필요도 없는데, 이래서 기초가 중요하다.

 

가슴이 답답하다.

 

배운 점

1. .upper() 함수를 사용하면 대문자로 치환 가능하다.

2. .index() 함수를 사용하여, 배열에서 위치를 가져올 수 있다.

'백준' 카테고리의 다른 글

백준 2908 문제풀이 [python]  (0) 2023.06.14
백준 10845 문제풀이 [python]  (0) 2023.06.14
백준 2747 문제풀이 [python]  (0) 2023.06.11
백준 2193 문제풀이 [python]  (0) 2023.06.11
백준 11726 문제풀이 [python]  (0) 2023.06.10
댓글