문제 링크 베스트앨범 문제 조건 속한 노래가 많이 재생된 장르를 먼저 수록한다. 장르 내에서 많이 재생된 노래를 먼저 수록한다. 장르 내에서 재생 횟수가 같은 노래 중에서는 고유 번호가 낮은 노래를 먼저 수록한다. 변수 설명 매개변수 genres : 노래의 장르를 나타내는 문자열 배열 plays : 노래별 재생 횟수를 나타내는 정수 배열 Song : 고유 번호(idx)와 재생 횟수(plays)를 가진 클래스 rankHash : 장르의 순위 결정을 위한 HashMap pq : 장르 순위 판별을 위한 우선순위 큐 songRank : 각 장르별 음악 1, 2위 코드 설명 30~42줄 재생 횟수(plays) 큰 것이 더 크도록, 재생 횟수가 같다면 순서(idx)를 비교하여 더 낮은 것이 더 크도록 설정 ..
문제 출처 계단 오르기 문제 요약 계단 오르는 데는 다음과 같은 규칙이 있다. 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..
- Total
- Today
- Yesterday
- 클린 아키텍처
- 백준
- Effective Java
- 디자인패턴
- 정규표현식
- 이팩티브 자바
- Spring
- C++
- BAEKJOON
- BOJ
- 디자인 패턴
- 객체지향
- Olympiad
- 이펙티브 자바
- 클린 코드
- Kotlin
- 테라폼
- JPA
- Java
- node.js
- 코테
- 프로그래머스
- kotest
- AWS
- kkoon9
- MSA
- 알고리즘
- Spring Boot
- programmers
- Algorithm
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |