[파이썬] 백준 1929 : 소수 구하기 https://www.acmicpc.net/problem/1929 1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. www.acmicpc.net 실버 3 수학 정수론 소수판정 에라토스테네스의 체 소수는 1과 자기 자신을 제외한 수로 나누어 떨어지지 않는 수. (2는 소수) 에라토스테네스의 체 : 범위에서 합성수를 지우는 방식으로 소수를 찾는 방법. 1. 1은 제거 2. 지워지지 않은 수 중 제일 작은 2를 소수로 채택하고, 나머지 2의 배수를 모두 지운다. 3. 지워지지 않은 수 중 제일 작은 3을 소수로 채택하고, 나머지 3의 ..
[python] 백준 1193 : 분수 찾기 1193번: 분수찾기 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. www.acmicpc.net 난이도 : 브론즈 1 분류 : 수학, 구현 코드 X = int(input()) line = 0 end = 0 while end < X: line += 1 end += line gap = end - X mom = 1 son = 1 if line % 2 == 0: son = line - gap mom += gap else: son += gap mom = line - gap print(f'{son}/{mom}') 접근 방법 '이게 왜 브론즈?'라는 생각이 들 정도로 어려웠던 문제였습니다. 2시간 가까이 삽질하다가 가까스로 풀었네요. 문제에서 주어진 표를 ..
[python] 백준 1316 : 그룹 단어 체커 난이도 : 실버 5 분류 : 구현, 문자열 ccazzzzbb는 c, a, z, b가 연속해서 나타나고 kin 은 k, i, n이 연속해서 나타나므로 이들을 그룹 단어라고 할 수 있다. 그러나 aabbbccb는 b가 떨어져서 나타나므로 그룹 단어가 아니다. k i i n d는 연속이지만 k i i n i는 연속이 아니다. ki kiii kiiiii 모두 연속인 상황이지만 n다음에 다시 i가 나오면 그룹 단어가 아니게 된다. 반복문을 사용해 kiind라는 단어를 순회하고 있다고 가정하자. k i i n d 0 1 2 3 4 2번과 3번 인덱스의 글자가 달라졌다는 것은 i의 연속이 끊어졌음을 의미한다. 만약 3번부터 맨 끝까지의 문자열에서 i가 또 등장한다면 ..
https://www.acmicpc.net/problem/2941 2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net 난이도 : 실버5 분류 : 구현, 문자열 ['c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=', 'z='] 입력받은 문자열의 개수를 세어 출력하되, 위의 문자들은 하나로 셈해야 한다. 풀이 1 word = input() cnt = 0 cro = ['c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=', 'z='] fo..
https://www.acmicpc.net/problem/1065 1065번: 한수 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 www.acmicpc.net 난이도 : 실버4 분류 : 브루트포스 코드 def han(N): cnt = 0 for i in range(1, N+1): lst = [] for j in str(i): lst.append(int(j)) if sum(lst)/len(lst) == (lst[0] + lst[len(lst)-1]) / 2: cnt += 1 else: continue return cnt N = int(input()) prin..
https://www.acmicpc.net/problem/4673 4673번: 셀프 넘버 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, www.acmicpc.net 난이도 : 실버5 분류 : 수학, 구현, 브루트포스 1 : 문자열을 이용한 풀이 lst = list(range(1, 10001)) wow = [] for i in range(len(lst)): for j in str(i): i += int(j) wow.append(i) wow.sort() for i in lst: if i not in wow: pr..