백준 153

[백준] 2941 크로아티아 알파벳

www.acmicpc.net/problem/2941 2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net s =input() alpha2=['c=','c-','dz=','d-','lj','nj','s=','z='] result = 0 index = 0 while True: tmp = s.find(alpha2[index]) if tmp == -1: if index == 7: break index += 1 else: s = s.replace(alpha2[index],'_',1) r..

STUDY/Algorithm 2021.02.01

[백준] 10809 알파벳 찾기

www.acmicpc.net/problem/10809 10809번: 알파벳 찾기 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출 www.acmicpc.net s=input() alpha = [-1]*(ord('z')-ord('a')+1)# 알파벳 갯수만큼 -1 for index, ch in enumerate(s):# 알파벳을 반복문으로 돌리는 것보다 if alpha[ord(ch)-97] == -1:# 더 짧을것같아서 string으로 반복문을 돌렸다. alpha[ord(ch)-97] = index# 각 알파벳이 처음나오는 index의 값만 바꿔준다. fo..

STUDY/Algorithm 2021.02.01

[백준] 1157 단어 공부

string = input().upper() # 대소문자 구분 안하는데 대문자로 출력하므로 대문자로 고정 alpha = dict() for ch in string:# 알파벳이 각각 몇 개 있는지 확인 if not ch in alpha: alpha[ch] = 0 alpha[ch] += 1 alpha = sorted(alpha.items(), key=lambda x:x[1]) # 딕셔너리의 값으로 정렬 max_ch,max_val = alpha.pop()# 마지막 값이 가장 큰값이므로 알파벳과 값 저장 if alpha==[]: print(max_ch) elif max_val == (alpha.pop())[1]: print("?") else: print(max_ch) 원래는 if alpha==[]:를 넣지 않았..

STUDY/Algorithm 2021.02.01

[백준] 8958 OX 퀴즈

www.acmicpc.net/problem/8958 8958번: OX퀴즈 "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수 www.acmicpc.net T = int(input()) for tc in range(T): tmp_list = input().split('X') result = 0 for tmp in tmp_list: if tmp != '': result += sum(range(len(tmp)+1)) print(result) 결과에서 O가 연속되면 점수가 누적되는 시스템이다. 결과에 X를 기준으로 split하면 각 원소가 O또는 공..

STUDY/Algorithm 2021.01.30

[백준] 1339 단어 수학

N = int(input()) words = dict() for _ in range(N): word = input() len_word=len(word)# 가중치를 자리수로 두기 위한 값 for char in word:# ex) 'ABC' = 'A'=100, 'B'= 10 'C' =1 if not char in words: words[char] = 0 words[char] += 10**(len_word - 1) len_word -= 1 words=sorted(words.items(),key=lambda x: x[1], reverse=True)# 가중치를 값으로 정렬, 내림차순 result = 0 for i in range(len(words)):# 가중치가 가장 큰 값부터 차례대로 곱해서 더함 result ..

STUDY/Algorithm 2021.01.30