코드 n = int(input()) d = [] for i in range(n): sum = 0 score = 0 case = input() for j in range(len(case)): if case[j] == 'O': score += 1 sum += score else : score = 0 d.append(sum) for K in d: print(K) 문자열에서 'O'가 연속적으로 있는 경우는 if case[j] =='O' 를 통해 score 값으로 1씩 올리며 더해준다. else절에서 score값을 0으로 다시 초기화함으로써 X일때를 표현한다.
코드 c = int(input()) d = [] for i in range(c): tol = 0 avg = 0 count = 0 n_score = list(map(int, input().split())) tol = sum(n_score) - n_score[0] avg = tol/(len(n_score)-1) for j in range(1, len(n_score)) : if n_score[j] > avg : count += 1 d.append((count/(len(n_score)-1))*100) for k in range(c): print(f'{d[k]:.3f}%') 총합 변수 tol, 평균 변수 avg, 각 테스트 케이스에서 평균 보다 높은 점수의 개수는 count 변수로 저장을 하였다. tol에서는 각..
word = input() alphabet = 'abcdefghijklmnopqrstuvwxyz' count = 1 for i in range(len(word)-1): if alphabet.index(word[i]) < alphabet.index(word[i+1]) : continue else : count += 1 print(count) 현재 글자의 인덱스 값보다 다음 인덱스 값의 알파벳이 뒤에 있으면 입력횟수를 최소화 할 수 있으므로 index()함수를 사용하여 위치를 구하여 비교한다. 또는 alphabet변수 사용없이 아스키코드를 이용해 풀 수도 있다. if ord(word[i]) < ord(word[i+1]) :
문제 설명 n개 중에서 r개를 선택할 때의 경우의 수를 구하는 문제다. https://terms.naver.com/entry.naver?docId=3350149&cid=60210&categoryId=60210 조합 공식 조합의 경우의 수를 구하는 공식이다. 조합은 n개 중 서로 다른 r개를 선택하되 순서를 고려하지 않는 것을 말한다. 관련자료 수학 공식을 모두 담은 "수학공식 포스터" 다운로드(PDF) 조합 공식 terms.naver.com 코드 def combi(n, r): i = 1 p = 1 while i def combi() 다시 넣기 (재귀호출) -> combi(1,1) + combi(1,0) 둘다 return 1
문제(1) 소인수분해 설명 소인수 분해란 소수가 아닌 합성수를 소수의 곱으로 나타내는 방법을 말한다. (입력된 숫자 n이 i로 나누어지면 해당 i는 n의 인수에 해당하며 n = n//i로 저장하여 이 과정을 반복한다.) 코드 n = int(input("자연수 입력 :")) i = 2 while i