문제 9466번: 텀 프로젝트 이번 가을학기에 '문제 해결' 강의를 신청한 학생들은 텀 프로젝트를 수행해야 한다. 프로젝트 팀원 수에는 제한이 없다. 심지어 모든 학생들이 동일한 팀의 팀원인 경우와 같이 한 팀만 있을 www.acmicpc.net 풀이 재귀를 사용하는 방법이기 때문에 recursion limit을 충분히 설정해주지 않으면 런타임에러가 난다. 스택과 dfs를 사용해서 풀었는데 조금 더 효율적인 방법이 있을것 같다. import sys sys.setrecursionlimit(10**8) # 테스트 케이스 개수 T = int(sys.stdin.readline()) def dfs(i): stack.append(i) # 아직 방문 안했으면 if visited[students[i]] == 0: vi..
문제 10819번: 차이를 최대로 첫째 줄에 N (3 ≤ N ≤ 8)이 주어진다. 둘째 줄에는 배열 A에 들어있는 정수가 주어진다. 배열에 들어있는 정수는 -100보다 크거나 같고, 100보다 작거나 같다. www.acmicpc.net 풀이 import sys from itertools import permutations N = int(sys.stdin.readline()) arr = list(map(int, sys.stdin.readline().split(" "))) maximum = 0 for perm in set(permutations(arr, N)): total = 0 for i in range(len(perm)-1): total += abs(perm[i] - perm[i+1]) maximum =..
문제 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, www.acmicpc.net 풀이 순서가 중요하기 때문에 순열을 통해 구해줬고, 브루트포스로 다 계산해보며 최대값, 최소값을 구했다. 순열에 set을 안쓰면 시간초과가 나는걸 보니 테스트케이스중 중복이 큰게 있나보다 import sys from itertools import permutations # 수의 개수 N = int(sys.stdin.readline()) A = list(map(int, sys.stdin.readline()..
문제 3040번: 백설 공주와 일곱 난쟁이 매일 매일 일곱 난쟁이는 광산으로 일을 하러 간다. 난쟁이가 일을 하는 동안 백설공주는 그들을 위해 저녁 식사를 준비한다. 백설공주는 의자 일곱개, 접시 일곱개, 나이프 일곱개를 준비한다. www.acmicpc.net 풀이 일단 9명을 다 더한 후, 100을 빼서 범인 두명의 합을 구한다. 그 후, 조합을 사용해 두명의 합이 일치하는 경우를 찾아서 배열에서 지워주면 된다. import sys from itertools import combinations arr = [] for _ in range(9): arr.append(int(sys.stdin.readline())) impo = sum(arr) - 100 for com in combinations(arr, 2..
문제 11053번: 가장 긴 증가하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이 www.acmicpc.net 풀이 LIS(Longest Increasing Subsequence)를 구하는 문제 왼쪽부터 하나씩 돌면서 나보다 왼쪽에 있으면서 나보다 크기가 작은 애들중 가장 dp[i]가 큰 애에 1을 더해주면 된다. import sys n = int(sys.stdin.readline()) numbers = list(map(int, sys.stdin.readline().split(" "))) ..
문제 1912번: 연속합 첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다. www.acmicpc.net 풀이 옛날에 코테 문제중에 이 문제를 풀었던것같은데 언제였는지 기억이 안난다. 뭔가 함정이 있을것 같았는데 생각보다 쉽게 풀렸다. 왼쪽부터 시작해서, 본인+왼쪽이 본인보다 클때 본인을 업데이트해주면 된다. 그 후, 배열에서 최대값을 출력하면 되는 문제 import sys n = int(sys.stdin.readline()) numbers = list(map(int, sys.stdin.readline().split(" "))) for i in range(1, len(n..
문제 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net 풀이 피보나치는 fib(i) = fib(i-1) + fib(i-2) 의 식을 세울 수 있기 때문에 i 0 1 2 3 4 5 fib(i)[0] 1 0 1 1 2 3 fib(i)[1] 0 1 1 2 3 5 위와같이 배열을 만들어서 0을 호출하는 횟수와 1을 호출하는 횟수를 저장했다. 문제 조건에서 i가 최대 40이라고 했기 때문에 미리 다 저장해두고 출력하는 방식으로 풀었다. import sys T = int(sys.stdin.readline()) arr = [] for i in range(41): if i == 0: arr.append([1, 0]) el..
- Total
- Today
- Yesterday
- 코틀린 리스트뷰
- 투포인터 알고리즘 파이썬
- 안드로이드 키해시
- flutter simultor
- 코틀린
- 코틀린 데이터바인딩
- 코틀린 바텀네비게이션
- 백준
- 카카오 키해시
- 투포인터 알고리즘
- 소수 구하기 파이썬
- 프로그래머스
- 파이썬 최대공약수
- 백준 1806
- 전화번호목록 파이썬
- 데이터바인딩 뷰바인딩 차이
- 안드로이드
- counting sort
- 안드로이드 카카오톡으로 로그인
- kotlin fragment
- 백준 1644
- 백준 2003
- 코틀린 뷰바인딩
- 코틀린 뷰페이저
- Kotlin
- 카카오 기출
- 시뮬레이터 키보드
- TextFormField keyboard
- 백준알고리즘
- 카카오톡으로 로그인 오류
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |