기초 40

[백준][함수] 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

[백준][1차원 배열] 10818번 최소, 최대

문제접근 1차원 배열을 사용해야 겠다. python 내장함수 min. max를 사용한다. 출력할때 문자열을 분리(띄어쓰기)를 한다. 문제풀이 내풀이 A = int(input()) N = list(map(int, input().split())) print(str(min(N)) + " " + str(max(N))) 다른사람풀이 import sys input() a = [int(s) for s in sys.stdin.read().split()] print(min(a), max(a)) sys 모듈을 가지고와서 input시간을 줄인다. 숏코딩 print(min(a:=[*map(int,[*open(0)][1].split())]),max(a)) open함수 min, max사용

백준/기초 2022.03.10

[백준][while 문]1110번 더하기 사이클

문제접근 while 문 사용하기 문제풀이 내풀이 N = int(input()) compareN = N # compare Number cnt = 0 # counter while True: A = N//10 B = N%10 C = (A+B)%10 N = (B*10)+C cnt += 1 if N==compareN: print(cnt) break 다른사람풀이 N = int(input()) n = -1 t = 0 while n != N: if n == -1: n = N n = (n//10 + n%10)%10 + (n%10)*10 t += 1 print(t) 숏코딩 a=n=int(input());c=1 while(a:=a%10*10+a*11//10%10)-n:c+=1 print(c)

백준/기초 2022.02.28