Coding Test (12) 썸네일형 리스트형 백준 1157번 - count words = input().upper() # 입력값 대문자로 바꾸기 APPLE word_list = list(set(words)) # set함수로 중복 제거 [A,P,L,E] cnt = [] # max함수를 사용하기위해 리스트로 만들기 for i in word_list: count = words.count(i) # 입력값의 개수세기 cnt.append(count) # 센 개수값을 리스트에 넣기 [1, 2, 1, 1] if cnt.count(max(cnt)) > 1: # max값이 2개이상일때 ?출력 print('?') else: print(word_list[cnt.index(max(cnt))]) # 개수가 가장 많은 알파벳을 출력 cnt.index(2), words_list[1] # P 백준 10809번 - find 파이썬 문자열 안에서 문자의 위치 찾는 함수는 대표적으로 find(), index()가 있다. 두 함수의 가장 큰 차이는 find()함수는 찾는 값이 없으면 -1 을 반환한다. 하지만, index()의 경우 문자 또는 문자열을 찾지 못할 경우 예외를 발생한다. 1. find 함수 이용 - 알파벳리스트는 string에서 가져올수있음 - end 함수 이용, 한줄에 출력 import string a = input() for i in string.ascii_lowercase: print(a.find(i), end=' ') *find(찾을문자, 시작index, 끝index) str = 'abcabcabc' index = str.find('b', 2) # index는 4 (5번째 문자) 2. index 함수 이용 .. 백준 1065번 - list ○ 문제 ● 답안 num = int(input()) hansu = 0 for i in range(1, num+1): num_list = list(map(int, str(i))) if i < 100: # 100보단 작으면 모두 한수 hansu += 1 elif num_list[0]-num_list[1] == num_list[1]-num_list[2]: hansu += 1 # 각자리가 등차수열이면 한수 print(hansu) 백준 4673번 - set ○ 문제 ● 답안(one-hour.tistory 참고) num = set(range(1, 10001)) rmv = set() # 생성자가 없는 집합 for i in range(1, 10001): for j in str(i): # 생성자가 있는 요소 i += int(j) rmv.add(i) # add : 집합에 요소를 추가 num = num - rmv # set의 - 연산자로 차집합 구하기 for k in sorted(num): # sorted 함수로 정렬 print(k) 백준 4344번 - 리스트, %.nf ○ 예제 입력 5 5 50 50 70 80 100 7 100 95 90 80 70 60 50 3 70 90 80 3 70 90 81 9 100 99 98 97 96 95 94 93 91 ○ 예제 출력 40.000% 57.143% 33.333% 66.667% 55.556% ● 답안 C = int(input()) for i in range(C): case = list(map(int, input().split())) avg = sum(case[1:])/case[0] cnt = 0 for i in range(1, len(case)): if case[i] > avg: cnt += 1 print('%.3f'%(cnt/case[0]*100)+'%') ◎ 참고 : 서식문자 %.nf N = float(input()) p.. 백준 2884번, 2525번 - if문 2884번(알람시계) 답안 H, M = map(int, input().split()) if M > 44: print(H, M-45) elif M 0: print(H-1, M+15) else: print(23, M+15) 2525번(오븐시계) 답안 A, B = map(int, input().split()) C = int(input()) A += C//60 B += C % 60 if B >= 60: A += 1 B -= 60 if A >= 24: A -= 24 print(A, B) 백준 1110번 - while문 문제 : 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, 주어진 수의 가장 오른쪽 자리 수와 앞에서 구한 합의 가장 오른쪽 자리 수를 이어 붙이면 새로운 수를 만들 수 있다. 다음 예를 보자. 26부터 시작한다. 2+6 = 8이다. 새로운 수는 68이다. 6+8 = 14이다. 새로운 수는 84이다. 8+4 = 12이다. 새로운 수는 42이다. 4+2 = 6이다. 새로운 수는 26이다. 위의 예는 4번만에 원래 수로 돌아올 수 있다. 따라서 26의 사이클의 길이는 4이다. N이 주어졌을 때, N의 사이클의 길이를 구하는 프로그램을 작성하시오. 답안 :.. 백준 10951번 - while문 탈출 문제 : 두 정수 A와B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. → 입력이 끝날 때까지 A+B를 출력하는 문제 EOFError 예외처리 while True: try: A, B = map(int, input().split()) print(A+B) except: break 입력 도중에 파일의 끝(End of File)을 만나면 EOFError가 발생 이전 1 2 다음