알고리즘
-
백준 1316 그룹 단어 체커 파이썬IT/알고리즘 2022. 3. 7. 18:55
풀이 먼저 간단히 문제를 이해하고 넘어가자. 예제 3번이 가장 이해를 돕기 쉬운 예제로 느껴지는데, 5 ab aa aca ba bb 5번의 입력값을 받는데, 첫번째 ab - 서로 같은 문자가 아니며, 중복되지 않는다. 두번째 aa - 서로 같은 문자이지만, 연속되어 나온다. 세번째 aca - a가 두 개로 중복이지만, 연속되어 나오지 않는다 -1 네번째 ba - 서로 같은 문자가 아니며, 중복되지 않는다. 다섯번째 bb - - 서로 같은 문자이지만, 연속되어 나온다. 그렇기에 출력값은 4가 나온다. 찐풀이 n = int(input()) #입력값을 넣는다. for i in range(n): #입력값의 범위만큼 for문을 돌리며 a= input() #n번 입력하는 것 for j in range(len(a)-..
-
백준 2941 크로아티아 알파벳IT/알고리즘 2022. 3. 3. 22:31
풀이 alphabet = ['c=','c-','dz=','d-','lj','nj','s=','z='] dial = input() for i in alphabet : dial = dial.replace(i, '*') print(len(dial)) replace를 쓰는구나.. 진짜 머리 좋으시다 다른분들.. 보고 적은거긴 하지만 이해는 했으니 풀이를 해본다. alphabet에 있는걸 하나씩 꺼내오는데, 이건 replace 이후에 print 값을 넣으면 어떻게 돌아가는지 더 쉽게 보인다. alphabet = ['c=','c-','dz=','d-','lj','nj','s=','z='] dial = input() for i in alphabet : dial = dial.replace(i, '*') print(di..
-
백준 5622 다이얼 파이썬 (이해 안가는 부분 해결)IT/알고리즘 2022. 3. 2. 00:53
풀이 alphabet = ['ABC','DEF','GHI','JKL','MNO','PQRS','TUV','XWYZ'] time = 0 dial = input().upper() for i in range(len(dial)) : for j in alphabet : if dial[i] in j : time += alphabet.index(j)+3 print(time) 나도 elif 여러번 써서 하는 걸 생각했는데, 그걸 요구하는 문제가 아닌것 같아 고민하다 답이 안나와 다른 블로그 열심히 둘러봤다. 내가 이해하기 조금 어려웠던 부분은 반복문 안에 반복문 쓰인 for i in range(len(dial)) : for j in alphabet : 이 부분인데, alphabet을 j에 순서대로 넣으면 이렇게 뭉쳐서..
-
백준 1157 단어 공부 파이썬IT/알고리즘 2022. 2. 28. 22:49
풀이 word = input().upper() word_list = list(set(word)) cnt = [] for i in word_list: cnt.append(word.count(i)) max_cnt = max(cnt) index_max_cnt = cnt.index(max_cnt) if cnt.count(max_cnt) > 1: print('?') else: print(word_list[index_max_cnt]) 예제와 같이 Mississipi 를 입력했을 때로 풀이해보자. word = input().upper() 입력 시 Mississipi 는 MISSISSIPI 모두 대문자로 입력된다. word_list = list(set(word)) word_list 에는 set 함수로 중복값을 제거해준..
-
백준 2675 문자열 반복 파이썬IT/알고리즘 2022. 2. 27. 02:03
풀이 T = int(input()) for i in range(T) : R, S = input().split() for j in S : X = j*int(R) print(X, end='') print() 풀던 것에서 계속 틀려서 무얼까 하고 봤는데, 맨 아래 print() 를 해줌으로써 터미널에 한 줄 띄어 쓰기가 가능하게 했다는 것이 신기했다. 문자열도 for에 범위에 쓰일 수 있구나.. 도 배움 for i in range(T) : R, S = input().split() for j in S : print(type(j), j) 요롷게 테스트로 R = 3 과 S = ABC 라는 값을 입력 후 type을 살펴보았더니 당연하게도 문자열이었다는 점 끝
-
백준 1065 한수 파이썬IT/알고리즘 2022. 2. 24. 01:15
풀이 def hansu(n) : cnt = 0 for i in range(1, n+1) : if 0 < i < 100 : cnt +=1 else : a = i//100 b = (i%100)//10 c = (i%100)%10 if (a-b) == (b-c): cnt +=1 return(cnt) num = int(input()) print(hansu(num)) 사실 문제도 이해가 어려워 블로그 탐색 후 문제 이해했음. 그리고 시작. 가장 이해하기 쉬웠던 블로그는 아래의 블로그였다. https://gabii.tistory.com/entry/BaekJoonPython3-%EB%B0%B1%EC%A4%80-1065%EB%B2%88-%ED%95%9C%EC%88%98 [BaekJoon/Python3] 백준 1065번 ..