일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 9251번
- caniuse
- Java
- 2630번
- 파이썬
- 1793번
- Spring Security
- programmers
- 영어
- 프로그래머스
- EBS어학당
- 백준
- SecurityFilterChain
- 권주현의 진짜 영국 영어
- 분할정복
- WebSecurityConfigurerAdapter
- 신규아이디추천
- 2163번
- github
- BinaryGap
- 11047번
- 11727번
- 1057번
- codility
- 1759번
- 18406번
- 알고리즘
- python
- 입이 트이는 영어
- 1992번
- Today
- Total
목록파이썬 (14)
철갑이의 이모저모
문제 www.acmicpc.net/problem/11727 11727번: 2×n 타일링 2 2×n 직사각형을 1×2, 2×1과 2×2 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×17 직사각형을 채운 한가지 예이다. www.acmicpc.net 풀이 dp문제는 처음 풀어봐서 하나하나 그려서 규칙을 찾은 후 점화식을 구했다. 위의 그림과 같이 N이 3 이상 이면 N-1에서 2x1 타일이 붙고, N-2에서 1x2 타일 두 개, 2x2 타일이 한 개 붙는 규칙이 계속된다. 따라서, dp[n] = dp[n - 1] + dp[n - 2] * 2 dp[1]과 dp[2]를 미리 구해서 시작. 답 a = int(input()) dp = [0,1,3] for i in range(3, a + ..
문제 www.acmicpc.net/problem/2003 2003번: 수들의 합 2 첫째 줄에 N(1≤N≤10,000), M(1≤M≤300,000,000)이 주어진다. 다음 줄에는 A[1], A[2], …, A[N]이 공백으로 분리되어 주어진다. 각각의 A[x]는 30,000을 넘지 않는 자연수이다. www.acmicpc.net 풀이 시간초과가 나서 투포인터를 공부해 문제를 풀어보았다. 합이 M보다 작은 경우 end 1 증가 시키고, M과 같으면 카운트, M보다 커지면 start 값을 1 증가시킨다. (반복) 답 N, M = map(int, input().split(' ')) A = list(map(int, input().split(' '))) cnt = 0 x = 0 end = 0 for start i..
문제 18406번: 럭키 스트레이트 첫째 줄에 점수 N이 정수로 주어진다. (10 ≤ N ≤ 99,999,999) 단, 점수 N의 자릿수는 항상 짝수 형태로만 주어진다. www.acmicpc.net 풀이 len()으로 받아온 값의 자릿수를 구해주고 절반씩 나눠 누적값을 구해줬다. 누적값의 경우, 예를 들어 a에서 123402를 받아오면 ['1', '2', '3', '4', '0', '2']처럼 요소로 이루어진 리스트처럼 여겨지기 때문에 a[i]로 인덱싱해서 누적해주었다. 답 a = input() b = 0 c = 0 if len(a) % 2 == 0 : for i in range(0,len(a) // 2) : b += int(a[i]) for i in range(len(a) // 2, len(a)) : ..
문제 2163번: 초콜릿 자르기 정화는 N×M 크기의 초콜릿을 하나 가지고 있다. 초콜릿은 금이 가 있는 모양을 하고 있으며, 그 금에 의해 N×M개의 조각으로 나눠질 수 있다. 초콜릿의 크기가 너무 크다고 생각한 그녀는 초콜릿� www.acmicpc.net 풀이 그림을 그려가면서 규칙을 찾아봤는데 N*M 초콜릿 자르는 횟수는 (N-1)+N(M-1) = N*M-1 로 정리할 수 있었다. 답 N, M = map(int,input().split()) print(N*M-1)