목록전체 글 (135)
100세까지 코딩
문제 나의 생각 단어를 순회하면서 바로 다음 알파벳을 본다. len(s)-2까지 돌아야 s [j+1]이 index 초과가 되지 않는다. 현재 알파벳과 다르면 현재 알파벳이 그다음에 나오는지 확인한다. 그다음에 또 나오면 그룹 단어가 아니므로 cnt -= 1 나의 풀이 T = int(input()) cnt = T for i in range(T): s = input() for j in range(len(s) - 1): if s[j] != s[j + 1]: if s[j] in s[j + 1:]: cnt -= 1 break print(cnt) 참고 T = int(input()) cnt = T for i in range(T): s = input() for j in range(len(s)-1): if s.find(..
2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net 문제 나의 생각 list에 미리 알파벳들을 저장해 놓는다. list를 순회하면서 만약 문자열에 해당 알파벳이 있으면 count()를 해서 cnt에 더해준다. 해당 알파벳은 replace()를 사용하여 다른 문자로 치환시킨다. 공백으로 치환 시 nljj의 경우 lj를 치환하면 nj가 남아 nj로 치환되어 2개가 된다. # 답은 3개 총개수는 cnt + 남아있는 문자열 길이 - 치환시킨 문자 길이 나의 풀이 s = input()..
문제 나의 생각 입력받은 문자열을 대문자로 바꾼다. max_count(최대 빈도수)와 max_alpha(가장 많이 사용된 알파벳) 선언 flag(가장 많이 사용된 알파벳이 여러 개 있는지) 선언 my_set(알파벳을 넣을 세트)를 선언하여 이미 있으면 반복문 통과 반복문을 통해 문자열 첫 문자부터 s.count()를 써서 빈도수를 비교한다. 최대값보다 크면 max_count에 저장하고 max_alpha를 해당 알파벳으로 바꾼다. 단, max_count와 같으면 flag = False로 바꾼다 반복문이 끝난뒤 flag에 따라 ?를 출력하거나 최빈수 알파벳을 출력한다. 나의 풀이 s = input() s = s.upper() max_count = 0 max_alpha = "" flag = True my_se..
문제 나의 생각 print()로 하나하나 출력한다. 특수문자는 앞에 \를 넣어 출력한다. 나의 풀이 print(" ,r'\"7") print("r`-_ ,' ,/") print(" \. \". L_r'") print(" `~\/") print(" |") print(" |") 새롭게 알게 된 풀이 weed = """ ,r'"7 r`-_ ,' ,/ \. ". L_r' `~\/ | |""" print(weed) - 파이썬은 """ """ 또는 ''' '''를 써서 여러 줄의 문자열을 그대로 표현할 수 있다. 참고 print('여러줄의 문자열을 \n' "개행문자를 사용하여 표현\n" '하는것이 바람직하다') - print안에 여러 번 ' '를 선언하는 방법도 가능하며 " "를 섞어 표현도 가능하다. 이래서 코테..
문제 나의 생각 처음에는 (ord와 // 3)으로 아스키코드를 사용하여 계산하려 했다. 그러나, 7번 9번에 알파벳이 4개씩 들어있어서 불가능. 두 번째로, list를 생성해 알파벳에 맞게 초기화한다. list를 순회할 때마다 +1씩 해주며 list에 해당 알파벳이 들어있으면 종료. 나의 풀이 s = input() alphabet_list = ['', '', 'ABC', 'DEF', 'GHI', 'JKL', 'MNO', 'PQRS', 'TUV', 'WXYZ'] total = 0 for index in range(len(s)): for alphabet in alphabet_list: total += 1 if s[index] in alphabet: break print(total) 새롭게 알게 된 풀이 (딕..