전체 글 241

백준 4344번 평균은넘겠지

문제 배열을 입력받을 배열의 개수를 입력받은 후 a만큼 돌면서 배열에 입력을 받아 평균값을 계산해서 이를 넘는 비율을 계산한다. a = int(input()) data = [] for i in range(a): cnt = 0 data = list(map(int,input().split())) #평균 구하기 data.pop(0) average = sum(data) / len(data) #평균 넘는 비율 구하기 for j in data: if j > average: cnt += 1 result = cnt / len(data) * 100 print("{:.3f}%".format(result)) 배열의 맨 첫부분은 평균점수를 구할 때 모든 과목의 합을 구하는 과정에서 필요가 없으므로 pop해서 데이터를 빼준다...

Algorithm/백준 2022.03.14

백준 8958번 OX퀴즈

문제 a에 정수를 입력받은 후 a만큼 돌면서 data에 입력을 받은 후 O의 개수를 확인해서 결과를 출력한다. a = int(input()) for i in range(a): # a만큼 입력 받기 cnt = 0 result = 0 data = input() for j in data: if j == 'O': cnt += 1 result += cnt else: cnt = 0 print(result) data에 모든 input을 저장한 후 input을 하나씩 확인해서 O이면 cnt를 늘려 결과값에 더해주고, X가 들어온다면 cnt를 0으로 바꿔준 후 결과 값을 출력한다.

Algorithm/백준 2022.03.14

백준 2577번 숫자의 개수

문제 1. 첫 번째 방법 입력을 한 번에 받아 곱셈을 수행한 후 배열을 만들어 모든 숫자를 저장해놓고 그 숫자가 존재하는지 하나씩 탐색하는 방법 사용 a = [] for i in range(3): a.append(input()) multiply = 1 for multi in a: multiply *= int(multi) multi_result = list(str(multiply)) result = [0] * 10 # 배열에 1부터 9까지 저장해놓고 숫자 몇개인지확인 number = ['0','1','2','3','4','5','6','7','8','9'] for res in number: cnt = 0 for ans in multi_result: if ans == res: index = int(res) ..

Algorithm/백준 2022.03.14

숫자 뒤집기

문제 문제에서 뒤집는 횟수를 구하는 부분은 0에서 1로 1에서 0으로 바뀌는 처음 부분이다. 따라서 이때 0으로 바꾸거나 1로 바꾸는 횟수를 하나씩 증가시켜주어 문제를 해결할 수 있다. input = "011110" def find_count_to_turn_out_to_all_zero_or_all_one(string): turn_zero = 0 turn_one = 0 if string[0] == '0': turn_one += 1 elif string[0] == '1': turn_zero += 1 for i in range(len(string)-1): if string[i] != string[i+1]: if string[i+1] == '0': turn_one += 1 if string[i+1] == '1'..

소수 구하기

소수는 1이상이며, 약수를 자기 자신과 1만 가지는 숫자 이므로 for문을 2부터 돌려가며 소수를 찾아준다. input = 20 def find_prime_list_under_number(number): # 소수 구하기 # 소수면 배열에 넣기 prime_number = [] for num in range(2, number + 1): for check_num in range(2,num): if num % check_num == 0: break else: prime_number.append(num) return prime_number result = find_prime_list_under_number(input) print(result) 소수는 자기 자신으로 나누어 지기 때문에 2부터 자기자신보다 1 작은 ..

반복되지 않는 첫 번째 문자 출력하기

2022.03.13 - [스파르타 코딩클럽/1주차] - 알파벳 빈도수 구하기 알파벳 빈도수 구하기 공백문자는 알파벳이 아니므로 공백문자가 나올 경우 건너 뛰고 알파벳인 경우만 확인해준다. def find_alphabet_occurrence_array(string): alphabet_occurrence_array = [0] * 26 # 알파벳인지 확인 하기 for al.. iilovecode.tistory.com 위 내용을 사용하여 알파벳의 빈도수를 배열에 저장 해준 후 빈도수가 1이라면 그 문자를 저장해서 가장 처음 나온 문자를 출력한다. def find_not_repeating_first_character(string): alphabet_occurrence_array = [0] * 26 for char..

곱하거나 더해서 가장 큰 수 만들기

결과 값을 담을 변수를 하나 만든 후 값이 0이거나 1인 경우 덧셈, 2 이상일 경우 곱셈을 해서 출력해준다 input = [0, 3, 5, 6, 1, 2, 4] def find_max_plus_or_multiply(array): # 1. 0이나 1이 들어 오면 덧셈 # - 배열을 한번씩 돌면서 숫자를 확인 # - 1보다 작거나 같은지 확인 # - 작거나 같다면 수를 더하기 # - 크다면 수를 곱하기 # ---> 변수를 만들어 0을 넣어 놓고 값을 차례대로 더하거나 곱해준다 # 2. 값을 반환 sum_or_multi = 0 for check_number in array: if check_number

빈도수가 높은 알파벳 출력하기

첫번째 방법 배열을 하나 만들어서 a부터 z까지 문자를 저장해 놓은 후 string에 들어있는 문자가 배열에 들어있는 문자와 같은경우 빈도수를 증가시켜준 후 가장 많이 나온 알파벳을 찾아 출력해준다. input = "hello my name is sparta" def find_max_occurred_alphabet(string): alphabet_array = ['a','b','c','d','e','f','g', 'h','i','j','k','l','m','n','o', 'p','q','r','s','t','u','v','w','x','y','z'] # 최대값 구하기 max_occurrence = 0 # 많이 나온 알파벳 저장 max_num_alpha = alphabet_array[0] for alpha..

알파벳 빈도수 구하기

공백문자는 알파벳이 아니므로 공백문자가 나올 경우 건너 뛰고 알파벳인 경우만 확인해준다. def find_alphabet_occurrence_array(string): alphabet_occurrence_array = [0] * 26 # 알파벳인지 확인 하기 for alpha in string: # 알파벳인지 확인해서 아닐 경우 넘어가기 if not alpha.isalpha(): continue # 알파벳인 경우 배열에 0번부터 넣어서 몇 개인지 반환 arr_index = ord(alpha) - ord("a") alphabet_occurrence_array[arr_index] += 1 return alphabet_occurrence_array print(find_alphabet_occurrence_arr..