일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 해시테이블
- 생활코딩
- React
- web
- Til
- CSS
- 백준
- 카카오
- UX
- 프로토타입
- vercel
- 스택
- useState
- level1
- Next.js
- 자료구조
- redux
- 자바스크립트
- 30daysdowoonchallenge
- UI
- javascript
- 코드스테이츠
- REST_API
- mysemester
- 운영체제
- 큐
- superstarjypnation
- 프로그래머스
- html
- 회고
- Today
- Total
목록algorithm (54)
데굴데굴
10872번: 팩토리얼 0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오. www.acmicpc.net 0보다 크거나 같은 정수 N이 주어졌을 때 N! 출력하기 * 재귀함수를 사용할 것. 참고링크: 백준 10872 [파이썬] 팩토리얼 (=계승) (tistory.com) n = int(input()) # n 입력받기 def factorial(i): res = 1 if i > 0: res = i * factorial(i - 1) return res print(factorial(n)) 팩토리얼의 성질 n! = n*(n-1)! 이용하기 0! = 1이므로 res의 초기값을 1로 지정해둔 후 0을 입력받았을 때에는 아무런 연산도 거치지 않고 res만 출력되도록 함. - 재귀함수는..
9020번: 골드바흐의 추측 1보다 큰 자연수 중에서 1과 자기 자신을 제외한 약수가 없는 자연수를 소수라고 한다. 예를 들어, 5는 1과 5를 제외한 약수가 없기 때문에 소수이다. 하지만, 6은 6 = 2 × 3 이기 때문에 소수가 아 www.acmicpc.net 소수: 1보다 큰 자연수 중에서 1과 자기 자신을 제외한 약수가 없는 자연수 골드바흐의 추측: 2보다 큰 모든 짝수는 두 소수의 합으로 나타낼 수 있다. 이러한 수를 골드바흐 수라고 함. 두 소수의 합으로 나타내는 표현을 골드바흐 파티션이라고 함. 10000보다 작거나 같은 모든 짝수 n에 대한 골드바흐 파티션은 존재함. 2보다 큰 짝수 n이 주어졌을 때 n의 골드바흐 파티션을 출력하는 프로그램 작성 만약 파티션이 여러 가지인 경우에는 두 소..
4948번: 베르트랑 공준 (acmicpc.net) 4948번: 베르트랑 공준 베르트랑 공준은 임의의 자연수 n에 대하여, n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다는 내용을 담고 있다. 이 명제는 조제프 베르트랑이 1845년에 추측했고, 파프누티 체비쇼 www.acmicpc.net 베르트랑 공준 - 임의의 자연수 n에 대하여 n보다 크고 2n보다 작거나 같은 소수는 적어도 하나 존재한다. ex) 10보다 크고 20보다 작거나 같은 소수는 4개 {11,13, 15, 19} 14보다 크고 28보다 작거나 같은 소수는 3개 {17, 19, 23} 자연수 n이 주어졌을 때 n보다 크고 2n보다 작거나 같은 소수의 개수를 구하는 프로그램 작성 [구조] 소수를 찾는 함수를 정의 주어진 범위에..
1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. www.acmicpc.net 설명에 '에라토스테네스의 체'로 풀어보라고 되어 있어서 찾아보았다. 에라토스테네스의 체의 계산 방식은 다음과 같다. 1을 제거함 지워지지 않은 수 중에 제일 작은 2를 소수로 선택 나머지 2의 배수를 모두 지움 지워지지 않은 수 중에 제일 작은 3을 소수로 선택 나머지 3의 배수를 싹 지움 5, 7, 11도 이렇게 반복해서 배수들을 싹 지운다. 이 메커니즘을 활용하여 코드를 짜면 이렇게 된다고 한다. 구글링함. def isPrime(num): if num == 1: return False el..
2581번: 소수 M이상 N이하의 자연수 중 소수인 것을 모두 찾아 첫째 줄에 그 합을, 둘째 줄에 그 중 최솟값을 출력한다. 단, M이상 N이하의 자연수 중 소수가 없을 경우는 첫째 줄에 -1을 출력한다. www.acmicpc.net '단계별로 풀어보기'에서 이 바로 전 문제였던 1978번 문제에서 조금 더 발전한 문제이다. 여기서는 자연수 m과 n을 입력받은 후 m과 n 사이에 존재하는 소수의 합과 최소값을 출력해야 한다. 그래서 저번 문제에서 썼던 코드를 가져와 살짝 수정만 해줬다. n = int(input()) numbers = map(int, input().split()) cnt = 0 for num in numbers: error = 0 # for문을 돌 때마다 error가 초기화되도록. if..
1978번: 소수 찾기 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. www.acmicpc.net n = int(input()) numbers = map(int, input().split()) cnt = 0 for num in numbers: error = 0 # for문을 돌 때마다 error가 초기화되도록. if num > 1: # 1은 소수가 아니니까 제외 for i in range(2, num): if num % i == 0: error += 1 if error == 0: cnt += 1 print(cnt) cnt를 만들어서 소수일 때마다 1씩 더하는 부분은 구상했지만 소수를 판별하는 조건을 어떻게 구현하는지 감이 안 ..

10250번: ACM 호텔 프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T 개의 테스트 데이터로 이루어져 있는데 T 는 입력의 맨 첫 줄에 주어진다. 각 테스트 데이터는 한 행으로서 H, W, N, 세 정수 www.acmicpc.net t = int(input()) for i in range(t): h, w, n = map(int, input().split()) y = n % h x = n // h + 1 if h > n: y = n x = 1 elif y == 0: y = h x = n // h if x < 10: print("{}0{}".format(y, x)) else: print("{}{}".format(y, x)) 글 쓰다가 날아가서 조금 화가 남..^^ 로그인이 풀린 걸 ..
1193번: 분수찾기 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. www.acmicpc.net x = int(input()) line = 1 while x > line: x -= line line += 1 if line % 2 == 0: a = x b = line - x + 1 else: a = line - x + 1 b = x print(a, '/', b, sep='') 연습장 펴놓고 그림 그려보면서 규칙 찾는 것까지는 성공했는데 이걸 어떻게 코드로 구현시킬지 도통 머리가 안 돌아갔다. 수학 유형의 알고리즘 풀 때 나의 가장 큰 문제인 듯.. 일단 규칙은 찾는데 수식화를 못 함.. 응.. 이 문제도 규칙 찾고 line 변수 설정하는 것까지는 감을 잡았는데 저거 저 공식 세우는 게 ....