문제 출처 계단 오르기 문제 요약 계단 오르는 데는 다음과 같은 규칙이 있다. 1.계단은 한 번에 한 계단씩 또는 두 계단씩 오를 수 있다. 2.연속된 세 개의 계단을 모두 밟아서는 안 된다. 단, 시작점은 계단에 포함되지 않는다. 마지막 도착 계단은 반드시 밟아야 한다. 따라서 첫 번째 계단을 밟고 이어 두 번째 계단이나, 세 번째 계단으로 오를 수 있다. 하지만, 첫 번째 계단을 밟고 이어 네 번째 계단으로 올라가거나, 첫 번째, 두 번째, 세 번째 계단을 연속해서 모두 밟을 수는 없다. 첫 번째 접근 n-3까지만 구하고 n-2 n-1 n을 따로 더해주려고 했다. memo[1] = input[1]; memo[2] = input[1] + input[2]; for (int i = 3; i input[n ..
문제 요약 빙고 문제 설명 첫째 줄부터 다섯째 줄까지 빙고판에 쓰여진 수가 가장 위 가로줄부터 차례대로 한 줄에 다섯 개씩 빈 칸을 사이에 두고 주어진다. 여섯째 줄부터 열째 줄까지 사회자가 부르는 수가 차례대로 한 줄에 다섯 개씩 빈 칸을 사이에 두고 주어진다. 빙고판에 쓰여진 수와 사회자가 부르는 수는 각각 1부터 25까지의 수가 한 번씩 사용된다. 첫째 줄에 사회자가 몇 번째 수를 부른 후 철수가 "빙고"를 외치게 되는지 출력한다. 함수 설명 solve : 사회가 부르는 수를 0으로 바꿔주는 함수 Bingo : table에 bingo 개수를 리턴해주는 함수 문제 해답 #include using namespace std; const int SIZE = 5; int table[SIZE][SIZE]; b..
문제 링크 숫자의 개수 문제 요약 세 개의 자연수 A, B, C가 주어질 때 A×B×C를 계산한 결과에 0부터 9까지 각각의 숫자가 몇 번씩 쓰였는지를 구하는 프로그램을 작성하시오. 예를 들어 A = 150, B = 266, C = 427 이라면 A × B × C = 150 × 266 × 427 = 17037300 이 되고, 계산한 결과 17037300 에는 0이 3번, 1이 1번, 3이 2번, 7이 2번 쓰였다. 함수 설명 TheNumber : 0~9의 개수를 출력해주는 함수 코드 설명 A, B, C의 곱의 결과에서 숫자의 개수를 출력해준다. 문제 해답 #pragma warning(disable: 4996) #include using namespace std; #define N 10 int arr[N]..
문제 링크 홀수 문제 요약 7개의 자연수가 주어질 때, 이들 중 홀수인 자연수들을 모두 골라 그 합을 구하고, 고른 홀수들 중 최솟값을 찾는 프로그램을 작성하시오. 예를 들어, 7개의 자연수 12, 77, 38, 41, 53, 92, 85가 주어지면 이들 중 홀수는 77, 41, 53, 85이므로 그 합은 77 + 41 + 53 + 85 = 256 이 되고, 41 < 53 < 77 < 85 이므로 홀수들 중 최솟값은 41이 된다. 함수 설명 SumNMax : 홀수의 합과 최소값을 출력해주는 함수 코드 설명 7개의 자연수를 입력 받은 뒤 홀수 검사를 해준다. 홀수면 sum에 더해준 뒤 최소값을 찾아준다. sum이 0이면 홀수가 없다는 뜻이므로 -1을 출력해준다. 문제 해답 #pragma warning(di..
문제 링크 숫자 카드 문제 요약 1부터 34까지 수가 적힌 카드들이 있다. 카드의 숫자를 차례로 적어 놓은 것이 주어질 때, 가능한 카드의 배열이 모두 몇 개인지 구하는 프로그램을 작성해야 한다. 첫 줄에 카드의 숫자를 차례로 적어 놓은 것이 주어지며, 이것은 최대 40자 이하의 숫자로 이루어진다 Dynamic Programming 이 문제는 다이나믹 프로그래밍으로 풀이할 수 있다. ex) 27123 i가 1일 때 27이므로 34보다 작고 십의자리가 2이다. 2, 7 27 i가 2일 때 71이므로 34보다 크다. 2, 7, 1 27, 1 i가 3일 때 12이므로 34보다 작고 십의자리가 1이다. 2, 7, 1, 2 2, 7, 12 27, 1, 2 27, 12 이런 식으로 Dynamic Programmin..
문제 링크 색종이 문제 요약 각각 1~6cm 색종이의 개수를 입력으로 갖는다. 가로, 세로의 길이가 각각 6cm인 판 위에 입력 받은 색종이들을 모두 붙여야 한다. 이 때 필요한 최소한의 판의 개수를 출력하는 문제이다. 조건문 문제가 조금 까다로워 보이지만 조건문만 논리적으로 잘 세워주면 쉽게 풀 수 있다. 6cm : 개수만큼 판의 개수를 늘려주면 된다. 5cm : 한 판마다 1cm 색종이가 11개씩 더 들어갈 수 있다. 4cm : 한 판마다 2cm 색종이가 5개씩 더 들어갈 수 있다. 3cm : 한 판마다 2cm 색종이 1개, 1cm 색종이 5개씩 더 들어갈 수 있다. 2cm : 1cm 4개로 치환된다. 1cm : 한 판마다 36개씩 들어갈 수 있다. 문제 해답 #include using namespa..
문제 링크 보물섬 문제 요약 첫째 줄에는 보물 지도의 세로의 크기와 가로의 크기가 빈칸을 사이에 두고 주어진다. 이어 L과 W로 표시된 보물 지도가 아래의 예와 같이 주어지며, 각 문자 사이에는 빈 칸이 없다. 보물 지도의 가로, 세로의 크기는 각각 50이하이다. 첫째 줄에 보물이 묻혀 있는 두 곳 사이를 최단 거리로 이동하는 시간을 출력한다. BFS 큐에 있는 모든 좌표 (x,y)를 다음과 같은 조건을 만족하는지 체크해준다. arr 범위 밖이라면 continue 방문했던 좌표라면 continue 'W'라면 continue 현재 좌표에서 동 서 남 북 좌표가 위의 세 가지 조건에 비교한 뒤, 큐에 넣어주고 depth를 1 더해준다. 위의 루틴을 큐가 빌 때까지(empty) 실행한 뒤 dep..
문제 링크 곱셈 문제 요약 곱셈의 과정을 모두 출력해주어야 한다. 함수 설명 OnePrint : 두 번째 input의 일의 자리 숫자를 리턴하는 함수 TenPrint : 두 번째 input의 십의 자리 숫자를 리턴하는 함수 HunPrint : 두 번째 input의 백의 자리 숫자를 리턴하는 함수 문제 해답 #include using namespace std; int OnePrint(int a); int TenPrint(int a); int HunPrint(int a); int main() { int a, b; cin >> a >> b; cout
- Total
- Today
- Yesterday
- MSA
- 디자인패턴
- AWS
- 백준
- kotest
- kkoon9
- Spring
- 코테
- 알고리즘
- Kotlin
- 클린 코드
- 정규표현식
- C++
- programmers
- JPA
- BOJ
- Olympiad
- 이펙티브 자바
- Algorithm
- 객체지향
- 클린 아키텍처
- Effective Java
- node.js
- 프로그래머스
- BAEKJOON
- 테라폼
- Java
- Spring Boot
- 이팩티브 자바
- 디자인 패턴
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |