백준 2577 파이썬 숫자의 개수
- input 세 개를 받는다 - 세 개의 수를 곱해서 나온 수를 list에 저장 - 0부터 9까지의 숫자 각각 몇 개가 있는지 확인 후 출력
- 공부하자!/알고리즘
- · 2021. 1. 22.
한수를 판별하는 함수를 만들어야 하는 문제! 99까지는 전부 포함되기 때문에 범위를 나눠서 했다 #한수 판별 함수 def han(num): if num//100 - (num%100)//10 == (num%100)//10 - (num%10): return num N = int(input()) if N < 100 : a = [i+1 for i in range(N)] #99까지는 모두 해당되기 때문에 모두 저장 else : a = [i+1 for i in range(99)] #99까지는 모두 해당되기 때문에 모두 저장 for i in range(100, N+1): #한수 판별 후 저장 if han(i) == i: a.append(i) print(len(a)) 이런 방법도 있었다..!! print(sum(i
처음에는 셀프 넘버에 어떤 규칙이 있을까 싶어서 그걸 구하려고 했는데, 그게 아니라 1~10,000까지의 수 중에서 생성자를 뺀 나머지들을 묶으면 쉬웠다 [1~10000까지의 수] - [1~10000까지 생성자가 있는 수들] = [(1~10000까지의)셀프 넘버들] 이 되는 것! 밑줄 친 부분을 만들기 위해 우선 d(n) 함수를 정의해야 한다. def d(n): return ( n + sum(map(int, str(n)))) sum 과 map 을 이용해 n + n의 각 자리수 리턴 (n + n//10000 + n//1000 ... 이런 식으로 해서 실패했었다 ㅋㅋㅋ) a = [] 라는 빈 리스트를 만들어 결과값을 하나씩 추가 a = [] for i in range(1, 10000): a.append(d(..
1) 테스트 케이스 input 받아서 C에 저장 아래를 C만큼 반복 2) 학생 수 N과 이어서 점수가 나오니 리스트에 저장 후, a[0] 저장 후 삭제 3) 평균 구하기 아래를 학생 수N만큼 반복 4) 점수 중 평균보다 높은 점수가 몇 개 인지 확인 후 y에 저장 (평균보다 높은 점수 받은 학생)/(전체 학생 수) 비율 프린트 import sys C = int(input()) for i in range(C): a = list(map(int, sys.stdin.readline().split())) x = a[0] del a[0] average_s = sum(a)/x y = 0 for j in range(x): if average_s < a[j]: y += 1 print(f'{y/x*100:.3f}%')
1) input을 받고, 2) 42로 나눈 나머지를 구하고, > %42 3) list 안에 넣고, > append() 4) set()를 이용해 중복요소를 제거하고, > set() 5) 안에 몇 개 있는지 세어본다 > len() #list 생성 a = [] #input 받고, %42, list 안에 넣음 for i in range(10): a.append(int(input())%42) #set로 중복요소 제거 후 개수 세기 print(len(set(a))) list 안에서 모든 걸 해결할 수도 있다 a = [int(input())%42 for i in range(10)] print(len(set(a)))
- input 세 개를 받는다 - 세 개의 수를 곱해서 나온 수를 list에 저장 - 0부터 9까지의 숫자 각각 몇 개가 있는지 확인 후 출력