Algorithm 179

백준 2908번 상수

문제 첫번째 해결방법 제일 마지막에 들어온 숫자(1의 자리 숫자)가 제일 먼저 들어온 숫자(100의 자리 숫자)와 값이 바뀐 후 바뀐 숫자로 크기 비교를 해야하므로, 스택을 이용하여 숫자를 하나씩 빼서 배열에 저장한 후 정수형으로 변환하여 숫자의 크기를 비교하였다. a,b = input().split() a = list(a) b = list(b) result_a = [] result_b = [] while a and b: res_a = a.pop() res_b = b.pop() result_a.append(res_a) result_b.append(res_b) num_a = (int(result_a[0]) * 100) + (int(result_a[1])* 10) + int(result_a[2]) num_b..

Algorithm/백준 2022.03.31

백준 1157번 단어공부

문제 1. 첫 번째 해결방법 데이터를 리스트에 입력받은 후 알파벳과 하나씩 비교해가면서 개수를 인덱스에 넣어준다. 그 후 가장 많이 나온 알파벳의 개수와 가장 많이 나온 알파벳의 인덱스를 구해서 가장 많이 나온 알파벳의 개수를 카운트 해서 2개 이상 이라면(많이 나온 알파벳의 개수가 1개가 아니라 2개 이상 일 경우) ?를 출력하고, 1개라면 대문자로 문자를 출력해준다. data = input() data = list(data.lower()) result = [0]*26 alphabet = 'abcdefghijklmnopqrstuvwxyz' for i in alphabet: for j in data: if j == i: idx = ord(i) - ord('a') result[int(idx)] +=1 #많..

Algorithm/백준 2022.03.18

백준 2675번 문자열반복

문제 1. 첫 번째 방법 먼저 입력받을 횟수를 받은 후 split을 사용하여 입력 값을 공백을 기준으로 나눠 받는다.' 이렇게 입력을 받으면 a에는 3과 5, b에는 ABC와 /HTP가 담긴다. 그 후 b를 a번 출력해야 하므로 이중 for문을 만들어 b를 a번만큼 돌리면서 형식에 맞게 출력해준다. num = int(input()) for i in range(num): a,b = input().split() cnt = int(a) for i in range(len(b)): for j in range(cnt): # 결과가 한 줄에 나오도록 출력 print(b[i],end='') # 결과가 나온 후 줄바꿈 print('') 주의할 점 : a값을 int로 변환해주지 않으면 str로 인식하여 에러가난다. 2. ..

Algorithm/백준 2022.03.17

백준 10809번 알파벳찾기

문제 1. 첫 번째 해결방법 결과를 출력할 알파벳 크기의 배열을 만든 후 디폴트 값으로 -1을 넣어준 후 입력받은 알파벳의 인덱스에 처음 위치를 넣어서 형식에 맞게 출력하는 방법 # 입력받기 data = input() alphabet = ['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'] result = [0] * 26 # 결과 값을 나타 낼 배열을 만들고 디폴트 값으로 -1을 넣어주기 for i in range(len(alphabet)): result[i] = -1 # result 배열에 각 데이터가 처음 나온 위치 차례로 넣어주기 for char in alphabe..

Algorithm/백준 2022.03.17

백준 11720번 숫자의합

문제 두 번째 줄에 입력받는 숫자를 하나씩 쪼개서 저장 한 후 그 값들을 차례대로 하나씩 저장해서 출력한다. a = int(input()) b = list(input()) sum = 0 for i in b: sum += int(i) print(sum) 첫 번째 줄은 정수를 입력받아야 하므로 int로 입력을 입력을 받아주고, 두 번 째 줄의 입력은 각 숫자를 하나씩 쪼개서 저장해주어야 하기 때문에 list로 입력을 받는다. 그 후 덧셈을 수행할 변수를 만들어 for문을 돌면서 각 값을 하나씩 더한 후 그 값을 출력한다.

Algorithm/백준 2022.03.14

백준 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