일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 1차원 DP
- 2차원 dp
- 99클럽
- @BeforeAll
- @BeforeEach
- @Builder
- @Entity
- @GeneratedValue
- @GenericGenerator
- @NoargsConstructor
- @Query
- @Table
- @Transactional
- Actions
- Amazon EFS
- amazon fsx
- Android Studio
- ANSI SQL
- api gateway 설계
- api gateway 필터
- ApplicationEvent
- argocd
- assertThat
- async/await
- AVG
- AWS
- aws autoscaling
- aws eks
- AWS KMS
- aws vpc peering
- Today
- Total
목록전체 글 (262)
기록

문제 1629번: 곱셈 첫째 줄에 A, B, C가 빈 칸을 사이에 두고 순서대로 주어진다. A, B, C는 모두 2,147,483,647 이하의 자연수이다. www.acmicpc.net 풀이 A, B가 커짐에 따라 A**B의 수행시간이 늘어난다. 따라서 이문제는 분할 정복을 이용하여 해결해야 한다. 모듈러 연산의 성질과 분할정복을 이용하면 B번의 연산을 log2B번으로 줄일 수 있다. 코드 def f(A, B) : if B==0 : return 1 if B%2==0 : tmp1 = f(A, int(B / 2)) ans = (tmp1 * tmp1) % C else : tmp1 = f(A, int(B / 2)) tmp2 = (tmp1 * (A % C)) % C ans = (tmp1 * tmp2) % C re..
문제 9465번: 스티커 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스의 첫째 줄에는 n (1 ≤ n ≤ 100,000)이 주어진다. 다음 두 줄에는 n개의 정수가 주어지며, 각 정수는 그 위치에 해당하는 스티커의 www.acmicpc.net 풀이 첫번째 열에 속하는 두 값을 제외하고 연산을 시작한다. 제한사항에 따르면 뗀 스티커의 왼쪽, 오른쪽, 위, 아래에 있는 스티커는 함께 사용할 수 없다. 이 조건을 이용하여 왼쪽에서 오른쪽으로 진행하면서 max(왼쪽 대각선 값+현재 값, 왼쪽값)을 연산하였다. # 초기상태 [50, 10, 100, 20, 40] [30, 50, 70, 10, 60] # n = 1 [50, 50, 100, 20, 40] [30, 100, 70, 10, 60] #..

문제 12852번: 1로 만들기 2 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 자연수 N이 주어진다. www.acmicpc.net 풀이 N이 10이라고 할때, 경우의 수를 트리의 형태로 나열 할 수 있다. 같은 수가 다른 자리에서 여러번 등장할 수 있으므로 트리의 레벨 개념을 도입하였다. (N*level의 2차원 배열을 두었다고 생각할 수 있다.) 문제에서 N은 10^6보다 작은 자연수이므로, 메모리의 한계를 고려하여 defaultdict와 dict를 이용하여 아래의 코드처럼 표현하였다. 코드 from collections import defaultdict N = int(input()) tree = defaultdict(dict) # child: {lv:p} nums = [N] lv = 0 ..
문제 2448번: 별 찍기 - 11 첫째 줄에 N이 주어진다. N은 항상 3×2k 수이다. (3, 6, 12, 24, 48, ...) (0 ≤ k ≤ 10, k는 정수) www.acmicpc.net 풀이 " "를 "/"를 바꾸어 표현하면 아래와 같으며, 다음과 같은 패턴을 찾을 수 있다. 04: *(01)사이에 5개의 /가 들어가 있다. ****(03)의 길이는 5이다. 05: */*(02)사이에 3개의 /가 들어가 있다. */*(02)의 길이는 3이다. 06: ****(03)사이에 1개의 /가 들어가 있다. *(01)의 길이는 1이다. 07: *(01)사이에 11개의 /가 들어가 있다. *****/*****(06)의 길이는 11이다. 08: */* (02)사이에 9개의 /가 들어가 있다. */*///*..

문제 17070번: 파이프 옮기기 1 유현이가 새 집으로 이사했다. 새 집의 크기는 N×N의 격자판으로 나타낼 수 있고, 1×1크기의 정사각형 칸으로 나누어져 있다. 각각의 칸은 (r, c)로 나타낼 수 있다. 여기서 r은 행의 번호, c는 열의 www.acmicpc.net 풀이 파이프가 움직일 수 있는 경우의 수를 stack에 넣고 빼내어 연산하였을 때 올바른 답을 얻을 수 있는 것을 확인하였다. 다만, 시간초과로 테스트케이스를 통과하지 못했다. N = int(input()) board = [list(map(int, input().split())) for i in range(N)] path = [(0, 1, 0)] # end point, 0:→, 1:↘, 2:↓ ans = 0 while path : r..

문제 1085번: 직사각형에서 탈출 한수는 지금 (x, y)에 있다. 직사각형의 왼쪽 아래 꼭짓점은 (0, 0)에 있고, 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램을 작성하시오. www.acmicpc.net 풀이 직사각형 내부의 임의의 점 (x, y)에서 직사각형 경계까지의 최소거리는 아래 네가지 값 중 가장 작은 값이다. 코드 x, y, w, h = map(int, input().split()) print(min(x, y, (w-x), (h-y)))

문제 1259번: 팰린드롬수 입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다. 입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 않는다. www.acmicpc.net 풀이 읽어 들어온 숫자를 문자처럼 취급한다. 파이썬은 -1, -2처럼 인덱스를 처리할 수 있다. 이를 이용하여 가장자리 수부터 서로 비교해나간다. 코드 while True : num = input() if num=="0" : break else : ans = "yes" for i in range(int(len(num)/2)) : if num[-i-1]!=num[i] : ans = "no" break print(ans)

서보모터(SG-90) 서보모터는 모터와 기어박스 그리고 제어회로로 구성되어있어, 특정 위치로 이동하거나, 특정한 수치(속도 등)만큼 가동시킬 때, 모터로 부터의 피드백을 통해 정확하게 제어할 수 있는 구조를 갖추고 있는 모터로 자동화 생산 시스템, 로봇, 장난감, 가전제품 등 광범위하게 쓰이고 있습니다. 서보모터에는 3개의 단자가 있습니다. 일반적으로 3개의 케이블은 검은색(또는 갈색), 붉은색, 황색(또는 주황색, 흰색)으로 표시되어 있으며, 붉은색 선은 +전원, 검은색 선은 -전원에 연결되어 서보모터에 전기를 공급하는 역할을 하며, 노란색 선은 서보모터의 동작을 제어하는 신호선입니다. 서보모터-제어하기 서보모터란? 서보(Servo)의 어원은 라틴어의 Servue로서 노예라는 의미를 가지고 있으며, 목..