분류 전체보기 137

[1단계][연습문제] 나누어 떨어지는 숫자 배열

문제접근 배열을 재초기화하는것 for 문안에 if문을 쓴다. 문제생각순서 # 나누어 떨어지는 숫자 배열 # for을 써서 arr의 값하나하나를 divisor로 나눈다. # if 문을 써서 나누어지는 것은 출력 리스트에 append한다. # 값을 오름차순으로 정렬하라. # divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환 문제풀이 내풀이 def solution(arr, divisor): A = [] for i in arr: if i % divisor == 0: A.append(i) if not A: return [-1] A.sort() return A 다른사람풀이 def solution(arr, divisor): return sorted([n for n in arr i..

Programmers/1단계 2022.03.11

[백준][함수] 4673번 셀프 넘버

문제접근 함수를 사용한다. 문제풀이 내풀이 numbers = set(range(1, 10000)) remove_set = set() # 생성자가 있는 숫자 set for num in numbers : for n in str(num): num += int(n) remove_set.add(num) # add: 집합에 요소를 추가할 때 self_numbers = numbers - remove_set # set의 '-' 연산자로 차집합을 구함 for self_num in sorted(self_numbers): # sorted 함수로 정렬 print(self_num) 다른사람풀이 snum=1 count=0 refcount=102 addcount=98 refmod=3 addmod=8 while snum

백준/기초 2022.03.11

[백준][1차원 배열] 4344번 평균은 넘겠지

문제접근 1차원 배열을 사용한다. 리스트를 재 초기화(삭제)한다. 조건에 따라 cnt +1해준다. 문제풀이 내풀이 C= int (input()) for i in range(C): A= list(map(int,input().split())) Fn = A[0] del A[0] avg = sum(A) / Fn cnt = 0 for i in A: if i > avg : cnt += 1 PER = (cnt / Fn) * 100 print('%.3lf%c'% (PER,"%")) 다른사람풀이 import sys input = sys.stdin.readline test_case = int(input()) for _ in range(test_case): data = input().strip().split(' ') sco..

백준/기초 2022.03.10

[백준][1차원배열] 8958번 OX퀴즈

문제접근 1차원 배열을 사용한다. for i in list 안에 조건(if)를 잘 준다. 문제풀이 내풀이 n = int(input()) for _ in range(n): ox_list = list(input()) score = 0 sum_score = 0 # 새로운 ox리스트를 입력 받으면 점수 합계를 리셋한다. for ox in ox_list: if ox == 'O': score += 1 # 'O'가 연속되면 점수가 1점씩 커진다. sum_score += score # sum_score = sum_score + score else: score = 0 print(sum_score) 숏코딩 for i in[*open(0)][1:]:n=0;print(sum((n:=(n+1)*(j=='O'))for j in ..

백준/기초 2022.03.10

[백준][1차원 배열] 1546번 평균

문제접근 1차원 배열 for i in list: 문제풀이 내풀이 n = int(input()) # 과목 수 test_list = list(map(int, input().split())) max_score = max(test_list) new_list = [] for score in test_list : new_list.append(score/max_score *100) # 새로운 점수 생성 test_avg = sum(new_list)/n print(test_avg) 다른사람풀이 # 1546 n = int(input()) a=list(map(int,input().split())) m = max(a) for i in range(n): a[i] = a[i]/m*100 print(sum(a)/n) for i i..

백준/기초 2022.03.10