일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 5586
- EOF
- 4101
- 리뷰
- BoB 7기
- Best of the Best
- 5086
- 차세대 보안 리더 양성 프로그램
- 11109
- 정보보호 영재원
- 2476
- acmicpc
- Python
- 공주대 정보보호
- 11943
- text
- 정보보호 영재교육원
- 차세대 보안 리더 양성
- boj
- 1547
- 영재교육원
- 2501
- 2506
- 영재원
- 2965
- 2605
- 10833
- BoB 후기
- 10995
- BOB
- Today
- Total
짱해커가 되어보자
문제 0층 ~ 14층, 1호 ~ 14호까지 있는 아파트에서는 [k][n] 호에 들어가는 인원은 [k-1][1:n]까지 인원 수의 합과 같다 0층의 i호에는 i의 인원이 들어가 있다 T의 테스트 케이스 동안 k, n을 입력받고 인원을 출력으로 주면 된다 입력 : t, k, n 출력 : N 풀이 단순하게 i 조건과 각 호의 인원을 계산하여 출력하게 하였다 l = [[0]*15 for i in range(15)] for i in range(0, 15): l[0][i] = i for k in range(1, 15): for n in range(1, 15): l[k][n] = l[k-1][n] + l[k][n-1] for _ in range(int(input())): k, n = int(input()), int(..
문제 벌집 형태로 이루어진 방이 존재하며, 1부터 시작해서 N번방 까지 이동하는데 몇개의 방을 지나는지 물어보는 문제이다 입력 : N(1 ~ 1,000,000,000) 출력 : N 풀이 벌집의 방은 1을 시작으로 6(n-1)씩 증가하며 층을 이룬다 (1, 7, 19, 37, 61) N이 어느 층에 속하는지에 따라 이전 층의 갯수만 구한다면 지나는 방이 정해진다 f, c = [0, 1], 2 n = int(input()) while(n > f[-1]): f.append(f[c-1] + 6*(c-1)) c += 1 print(c-1)
문제 N에 대한 분해합의 가장 작은 생성자 M을 구하는 것 *분해합 : M + M의 각자릿 수의 합 = N 입력 : N(1 ~ 1,000,000) 출력 : N 풀이 분해합 생성자를 구하기 위한 반복의 시작은 N에서 N자리의 길이 * 각 자릿수의 최대값인 9를 곱한 만큼 빼주어 시작하면 된다 import sys n = int(input()) l = len(str(n)) for i in range(n-l*9 if n-l*9 > 0 else 0, n): if(n == i + sum(int(i) for i in str(i))): print(i) sys.exit() print(0)