목록전체 글 (217)
Study hard

programmers.co.kr/learn/courses/30/lessons/42579 코딩테스트 연습 - 베스트앨범 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 programmers.co.kr [풀이] 구현한 것 1. 먼저 고유번호를 vectorMusic에 저장하여 장르가 같은 것끼리 붙도록 정렬 2. 각 장르에 속한 노래들을 재생한 횟수 vectornum_of_G에 저장 3. 각 장르에 속한 노래 고유번호 mapTotal에 저장(index는 장르) 4. 재생 횟수가 많은 순으로 num_of_G정렬 5. 재생 횟수 많은 장르 순서대로 각각 속한 노래들을 재생 횟수..

www.acmicpc.net/problem/16974 16974번: 레벨 햄버거 상근날드에서 오랜만에 새로운 햄버거를 출시했다. 바로 레벨-L 버거이다. 레벨-L 버거는 다음과 같이 만든다. 레벨-0 버거는 패티만으로 이루어져 있다. 레벨-L 버거는 햄버거번, 레벨-(L-1) 버거, www.acmicpc.net [풀이] 먼저 burger[51]과 patty[51]에 전체 재료의 수와 패티의 수를 저장하였다. 그리고 X의 범위에 따라 return값을 달리 해 주었다. N이 0이고 X가 1이면 버거에는 패티 1장만 있으므로 1을 반환한다. N이 1이 아니고 X가 1이면 마지막 재료는 햄버거번이므로 0을 반환한다. 그리고 X의 크기가 아래 표시된 영역의 재료 수보다 작거나 같을 때 몇 장의 패티를 벅는지 반환..

www.acmicpc.net/problem/16939 16939번: 2×2×2 큐브 첫째 줄에 2×2×2 루빅스 큐브 각 면의 각 칸 색상이 주어진다. 색상은 1부터 6까지의 자연수로 나타내며, 각 자연수는 총 4번 등장한다. i번째 수가 의미하는 칸은 아래와 같다. www.acmicpc.net [풀이] 큐브를 아래 그림과 같이 두고 풀었다. 위와 같이 두고 입력을 받으면 뒷면->윗면->앞면->왼면->오른면->아랫면 순서로 입력을 받게 된다. 각 면을 시계방향으로 돌리는 경우와 반시계방향으로 돌리는 경우를 모두 확인하도록 해야한다. ※각면을 윗면로 두었을 때 사방에 어떤 면의 몇번째 칸이 붙게 되는지 그려보면서 풀어서 그나마 덜 헷갈리고 풀 수 있었다.. 처음엔 각 면마다 2*2배열을 선언해주었는데 복사..

www.acmicpc.net/problem/17822 17822번: 원판 돌리기 반지름이 1, 2, ..., N인 원판이 크기가 작아지는 순으로 바닥에 놓여있고, 원판의 중심은 모두 같다. 원판의 반지름이 i이면, 그 원판을 i번째 원판이라고 한다. 각각의 원판에는 M개의 정수가 적혀 www.acmicpc.net [풀이] 구현해야할 것 1. 원판 2. 원판 돌리기 3. 인접하면서 같은 수 찾기 4. 원판에 적힌 수의 평균 찾고 평균보다 큰 수에서 1 빼고 작은수에 1 더하기 1. 원판은 2차원 배열 int Circle[][]로 구현하였다. Circle[i][j]는 i번 원판의 j번째 숫자를 의미한다. 2. 돌릴 원판의 번호와 방향과 돌릴 칸 수를 인수로 보내 시계방향 또는 반시계방향으로 해당 원판을 돌리..

www.acmicpc.net/problem/9252 9252번: LCS 2 LCS(Longest Common Subsequence, 최장 공통 부분 수열)문제는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다. 예를 들어, ACAYKP와 CAPCAK의 LCS는 ACAK가 된다. www.acmicpc.net [풀이] LCS가 여러가지인 경우에 아무거나 출력하라고 했으므로 가장 긴 LCS를 출력하도록 했다. LCS를 구하는 것은 아래 풀이처럼 하고 string LCS[n][m]를 이용하여 첫번째 문자열의 n번째 문자까지와 두번째 문자열의 m번째 문자까지의 최장 LCS를 저장하도록 했다. 2021/02/24 - [백준/DP] - (c++)백준 9251번: LCS (c++..

www.acmicpc.net/problem/9251 9251번: LCS LCS(Longest Common Subsequence, 최장 공통 부분 수열)문제는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다. 예를 들어, ACAYKP와 CAPCAK의 LCS는 ACAK가 된다. www.acmicpc.net [풀이] dp[i][j] = A문자열의 i번째까지, B문자열의 j번째까지 가장 긴 부분 수열의 길이 #include #include //max #include using namespace std; string A, B; int dp[1001][1001]; void DP() { int N = A.size(); int M = B.size(); for (int i = 1;..