목록python (74)
just inside
문제 링크https://www.acmicpc.net/problem/2231문제 설명어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 된다. 따라서 245는 256의 생성자가 된다. 물론, 어떤 자연수의 경우에는 생성자가 없을 수도 있다. 반대로, 생성자가 여러 개인 자연수도 있을 수 있다.자연수 N이 주어졌을 때, N의 가장 작은 생성자를 구해내는 프로그램을 작성하시오. 입력 첫째 줄에 자연수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 출력 첫째 줄에 답을 출력한다. 생성자가 없는 경우에는 0을 출력한다. 제출 코드imp..
문제 링크https://www.acmicpc.net/problem/1929문제 설명 M이상 N이하의 소수를 모두 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. 출력 한 줄에 하나씩, 증가하는 순서대로 소수를 출력한다. 제출 코드import sysimport mathinput = sys.stdin.readlinem, n = map(int, input().split())nums = [True]*(n+1)for i in range(2, int(math.sqrt(n))+1): if nums[i]: for j in range(i*i, n+1,..
소수 (Prime Number) 란?1과 자기 자신 외에는 다른 약수를 가지지 않는 자연수.1보다 큰 자연수 중에서 오직 두 개의 약수만을 가지는 수 -> 1은 소수가 아님 소수 판별 알고리즘특정 숫자 n이 소수인지 확인하려면 2부터 $\sqrt{n}$ 까지의 모든 숫자로 n을 나누어 본다.$n=a \times b$이 때 a와 b 둘 중 하나는 반드시 n의 제곱근 이하이다. n이 소수가 아니라면, 반드시 두 약수 중 하나는 $\sqrt{n}$ 이하가 되게 된다.따라서 소수인지 판별하기 위해서는 2부터 n-1 까지가 아니라, $\sqrt{n}$ 까지만 확인하면 된다. # 제곱근 계산 위해 math 모듈 사용import mathdef ifPrime(n): # 2부터 n의 제곱근까지 반복 for i in ra..
문제 링크https://www.acmicpc.net/problem/1987문제 설명주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오. 입력첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. 출력주어진 수들 중 소수의 개수를 출력한다.제출 코드import sysimport mathinput = sys.stdin.readlinen = int(input().rstrip())nums = list(map(int, input().split()))result = 0def isPrime(n): if n == 1: return False # 2부터 제곱근까지 모든 수 확인 for i in r..
문제 링크https://www.acmicpc.net/problem/1436문제 설명666은 종말을 나타내는 수라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타워즈를 만들 때, 스타워즈 1, 스타워즈 2, 스타워즈 3, 스타워즈 4, 스타워즈 5, 스타워즈 6과 같이 이름을 지었고, 피터 잭슨은 반지의 제왕을 만들 때, 반지의 제왕 1, 반지의 제왕 2, 반지의 제왕 3과 같이 영화 제목을 지었다. 하지만 숌은 자신이 조지 루카스와 피터 잭슨을 뛰어넘는다는 것을 보여주기 위해서 영화 제목을 좀 다르게 만들기로 했다.종말의 수란 어떤 수에 6이 적어도 3개 이상 연속으로 들어가는 수를 말한다...
문제 링크https://www.acmicpc.net/problem/30802문제 설명2024년 2월 3일 개최 예정인 온사이트 그랜드 아레나에서는 참가자들에게 티셔츠 한 장과 펜 한 자루가 포함된 웰컴 키트를 나눠줄 예정입니다. 키트를 제작하는 업체는 다음과 같은 조건으로만 주문이 가능합니다.티셔츠는 S, M, L, XL, XXL, 그리고 XXXL의 6가지 사이즈가 있습니다. 티셔츠는 같은 사이즈의 𝑇장 묶음으로만 주문할 수 있습니다.펜은 한 종류로, 𝑃자루씩 묶음으로 주문하거나 한 자루씩 주문할 수 있습니다.총 𝑁명의 참가자 중 S, M, L, XL, XXL, XXXL 사이즈의 티셔츠를 신청한 사람은 각각 𝑆,𝑀,𝐿,𝑋𝐿,𝑋𝑋𝐿,𝑋𝑋𝑋𝐿명입니다. 티셔츠는 남아도 되지만 부족해..
자주 사용하지만 헷갈리는 딕셔너리 자료형을 짚고 넘어가기 위해 정리해보자.출처 : https://wikidocs.net/16딕셔너리딕셔너리는 {} 사용하여 딕셔너리 내의 요소를 저장사전과 같이 {키:값}으로 데이터가 저장키는 임의의 자료형을 사용할 수 있으나 중복 불가순서 없음 기본 구성dic = {'name':'pey', 'phone':'010-1234-5678', 'birth':'1188'} 딕셔너리 쌍 추가, 삭제추가하기>>> a = {1:'a'}>>> a[2] = 'b'>>> a{1: 'a', 2: 'b'}# key = 'name', value = 'pey' 인 딕셔너리 쌍 추가>>> a['name'] = 'pey'>>> a{1: 'a', 2: 'b', 'name': 'pey'} 수정하기>>> a..
문제 링크https://www.acmicpc.net/problem/1181문제 설명알파벳 소문자로 이루어진 N개의 단어가 들어오면 아래와 같은 조건에 따라 정렬하는 프로그램을 작성하시오.길이가 짧은 것부터길이가 같으면 사전 순으로단, 중복된 단어는 하나만 남기고 제거해야 한다. 입력 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. 출력 조건에 따라 정렬하여 단어들을 출력한다. 제출 코드import sysinput = sys.stdin.readlinen = int(input().rstrip())words = []for _ in range(n): ..