알고리즘 문제들 으악/백준

[python]1157,5622번 무지성의 정점

빈나 2022. 3. 26. 20:59
반응형

1157과 5622번을 한꺼번에 풀이하는 이유는 내가 무지성풀이의 끝을 보여준 문제이지 않나싶어서 차례대로 보여주고, 다른 고수분들의 깔끔스한 풀이도 보면서 비교해볼려고 한다.

1157번

a = input()
b = list(range(65,91))
b1 = list(range(97,123))
d = []
d1 = []
f = []
for c in b :
    d.append(a.count(chr(c)))
for c in b1:
    d1.append(a.count(chr(c)))
for c in range(len(b)):
    f.append(d[c]+d1[c])
e = f.index(max(f))
n = False
for c in range(len(d)):
    if e == c:
        continue
    elif f[e] == f[c]:
        print("?")
        n = True
        break
if n == False:
    print(chr(b[e]))

숨이 그냥 턱 막히는 길이다. 내가 생각한 방법은 아스키 코드로 일단 대문자와 소문자를 구분해서 리스트를 만들어 놓으면 각각의 대,소문자의 인자들을 더한다.

그런 다음 다시 새로운 리스트 안에 결과값들을 넣어서 대,소문자 갯수가 있는 리스트를 f로 정의했다.

그리고 밑에서는 f 리스트에서 가장 큰 값을 지정하고, 중복 숫자 있는지 입력한 문자열을 다 돌면서 검사한다.

g = input().upper()
h = list(set(g))
f = []
for i in h:
    f.append(g.count(i))
if f.count(max(f))>1:
    print('?')
else:
	print(h[f.index(max(f))])

 고수의 풀이는 일단 입력값을 전부 대문자로 변환시킨다. 그런 다음 set()값으로 변환시켜 중복 문자를 없앤다. f에 입력 문자열에 각각의 알파벳이 몇개 들어있는지 검사해서 넣어준다.

max(f)를 했을때 최대값의 개수가 1개 초과라면 최대문자가 2개 이상이라는 소리이므로 ?을 출력하고 아니면 그대로 최대문자를 출력한다.

 

5622번

a = input()
n = 0
for d in a:
    if d== "A" or d=="B" or d=="C":
        n += 3
    elif d=="D" or d=="E" or d=="F":
        n += 4
    elif d=="G" or d=="H" or d=="I":
        n += 5
    elif d=="J" or d=="K" or d=="L":
        n += 6
    elif d=="M" or d=="N" or d=="O":
        n += 7
    elif d=="P" or d=="Q" or d=="R" or d=="S" :
        n += 8
    elif d=="T" or d=="U" or d=="V":
        n += 9
    elif d=="W" or d=="X" or d=="Y" or d=="Z":
        n += 10
print(n)

ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

 

dial = ['ABC', 'DEF', 'GHI', 'JKL', 'MNO', 'PQRS', 'TUV', 'WXYZ']
ret = 0
for j in input():
    for i in dial:
        if j in i:
            ret += dial.index(i)+3
print(ret)

문자열 뭉탱이들을 리스트안에 넣어줘서 구분시킨다. 입력한 값들을 각각 돌면서 어느 뭉탱이 문자열에 속해있는지 확인한다.

만약 속해 있는 뭉탱이 문자열을 확인했다면 위치값에 3을 더한 값을 ret변수에 더해주고 ret값을 최종 출력한다.

반응형